Besoin d'un coup de pouce sur Construct 2 ? C'est par ici !
Avatar de l’utilisateur
par Mal
#8938 EDIT : voir solution plus bas (4eme message)
Bonjour à tous,

Je me tourne encore une fois vers la communauté.
J'ai regardé plusieurs tutos mais je ne trouve pas l'astuce qui me permettre de réaliser mon objectif :

    Je réalise une jeu de course en plateforme vu de profil (un plateforme running)
    Mon personnage accélère au fur et à mesure du niveau (le but étant d'être réactif pour éviter les obstacles)
    Je voudrais que plus mon personnage accélère, plus ma caméra recule (dézoom) et quand mon personnage ralentit ou meurt, elle se rapproche.
    Les Zoom et dézzom doivent se faire de manière progressive.

A noter :
Mes accélérations se font à l'aide de sprites invisible (par exemple, quand joueur touche le sprite vitesse 600 >>> set Bullet speed joueur 600.
A ce moment je voudrais que la caméra recule de manière fluide.

J'ai vu dans la démo ghost un zoom et dezoom en fonction de la distance entre le joueur et le curseur de la souris, mais je n'arrive pas à l'adapter pour moi.

Si vous avez des idées. Je suis preneur

Merci
++
Mal
Dernière édition par Mal le Lun 11 Fév 2013 14:59, édité 1 fois.
Avatar de l’utilisateur
par glo0my
#8939 J'ai pas de solutions toutes faites mais si tu as déjà réaliser la partie accélération et décélération progressive de ton personnage tu peux simplement tenter un truc du genre:

Every tick> set layer scale to "1/variable:acceleration" ou autre relation mathématique


Comme ca plus ton perso accèlere plus ton zoom sera petit

A tester ;)
Avatar de l’utilisateur
par Mal
#8940 e truc c'est que mon personnage accélère d'un coup. Comment le faire accélérer progressivement ?
Mais ton idée est pas mal.
Avatar de l’utilisateur
par Mal
#8980 Hello.
Je reviens sur mon problème avec peut être une solution.

J'ai cherché du côté de la fonction LERP en m'aidant de ce tuto :
https://www.scirra.com/tutorials/378/creating-a-smooth-sliding-effect-with-lerp
Et de ce topic ainsi que de son Capx à télécharger :
http://www.scirra.com/forum/scale-move-and-zoom_topic53682.html

Mon objectif :
Quand mon personnage a une vitesse de 600. La caméra dézoom un peu.
J'ai donc réalisé ceci :
Joueur : Bullet speed = 600 >>> System : Set layout scale to lerp(layoutscale,0.8,0.4*dt)

Dans mon cas :
0.8 = la taille de mon layout (le zoom arrière)
0.4 = la vitesse à laquelle il atteint la taille souhaitée.

Si un expert pouvait faire le point (en français :-) ) sur le LERP, ce serait chouette car pour le moment je le configure à taton.
J'espère que mon explication sera utile à quelqu'un.

Mal
Avatar de l’utilisateur
par Mal
#9005 Alors je continue sur mon projet :

Apres avoir "maitrisé" la notion de LERP associées au layoutScale pour mes zooms caméra il me restait toujours un problème :
En faisant un scalelayout, évidement j'ai toute ma composition et donc tous mes calques qui zoom.

MAIS je veux garder le calque (layer) GUI/HUD toujours à la même taille.
En regardant le tuto shooter rain fournie avec construct 2 j'ai constaté que pour réalisé l'effet de zoom ils font comme ceci :
1-Tous les layers qui devront zoom sont associé à la taille d'un layer référence (en l’occurrence le layer avec le joueur)
2-Le layer HUD n'est donc pas associé au layer référence
2-L'effet de zoom est ensuite appliqué au layer référence >>> tous les layers associés subissent le même effet de zoom.

J'ai donc appliqué ce principe.
MAIS (car il y a toujours un MAIS) >>> je me retrouve avec des problème de collision. En particulier avec un layer que j'ai appelé TRIGGERS qui me permet de placer dans le niveaux des sprites spéciaux (comme les accélérations, les changements de pesenteurs, etc...). Mes spristes sont à la bonne taille mais les hitbox sont décalées...

BREF. Pour le moment je sèche.
Avatar de l’utilisateur
par Mal
#9015 Et donc je continue.
Effectivement il y a bien un soucis avec le scale de plusieurs layers (les hitbox partent en sucette)
J'ai donc gardé l'option du zoom (redimension) du layout en indiquant dans les propriétés du layer GUI de ne pas tenir compte du rescale.

Si j'ai le temps ce week end, je mettrais une version simplifiée du bordel, peut être que ça pourra servir à d'autres.