comment reproduit-on l'effet de gravité pour un "mario-like"?
Merci à tous ceux qui m'aiderons
niuob Le 12/03/2002 à 17:34 Moi je donnerai une certaine vitesse (et une certaine direction) à l'objet/personnage.
Sa nouvelle position est calculée à partir de la vitesse.
A chaque cycle, on retranche une certaine valeur à sa vitesse, puis elle deviendra négative et le perso. retombera sur le sol.
pareil....
Tu affecte une valeur à une variable au début du saut, et elle se décrémente au fur et à mesure du saut. Pour que ton perso reste en l'air plus ou moins longtemps, tu peux faire en sorte, par exemple que la variable ne se décrément que toutes les 2 images au lieu de chaque...
au lieu de modifier que la position en Y, tu modifie AUSSI celle en X...
niuob Le 12/03/2002 à 18:05 Je pense que le mieux est encore de lui donner une direction (un angle theta).
A chaque cycle, tu fais : x = x + vitesse*cos(theta) et y = y + vitesse*sin(theta).
Ca permet entre-autres de gérer les rebonds (theta = -theta ou theta = PI + theta ...).
avec les rotations, ça doit être marrant comme technique
oui, mais un peu plus lent, non ???
sauf si peut-être on précalcule une table de cosinus et de sinus
p_y_a Le 13/03/2002 à 00:38 y'en a qui aime se casser le cul ...
a chaque boucle tu ajoute +cste a ton y et c bon ca simule la force P!
"I read the game.dll assembly more easily than you read the joke on the back of your box of Cocoa Pebbles, and have spent the past 2 1/2 years navigating it." ©
PpHd Le 13/03/2002 à 09:00 Calcul Vx
Calcul Vy :
Vy+=a
If (V .> max_vy) Vy = Max_vy
y+=Vy
if Case[x,y] = mur, then y-=Vy / Vy = 0
if Case[x,y+1] = plancher and bouton de saut
Vy = -valeur
Evidemement je cache pas mal de petits details d'implementation, tels que la virgule fixe, le x offset, le x entier et le x reel.
PpHd Le 13/03/2002 à 13:44 Si tu veux une acceleration non constante, ce n'est pas complique.
Et c'est normal qu'il n'y ait pas de boucle for. Reflechis. Lorsque tu sautes toi, y-a-t-il une boucle for ?
Et y'a pas de rotations du tout ! Ou voyez des rotations dans ce bout de code !
PpHd Le 13/03/2002 à 13:56 Lol. C'est l'algo pur de sma. Ca simule pas assez bien ?
PpHd Le 13/03/2002 à 14:12 Lorsque tu sautes, y'a-t-il une boucle for ?
Et mon algo est a execute tout le temps dans la routine du perso.
PpHd Le 13/03/2002 à 14:15 Lorsque toi, Pim89, saute as -tu besoin de penser a utiliser une boucle for ;p
PpHd Le 13/03/2002 à 15:03 Oui, enfin bof quand meme
Pim89 Le 13/03/2002 à 16:44 Ben comment alors ?? en restant simple.
Car dans mon projet de pacman je fais du case par case, mais en répétition tant qu'une autre touche que la droite (par ex) n'a pas été préssé ... pour que le perso avance sans avoir à maintenir la touche. (principe du pacman).
Pourtant je peux changer de direction quand je veux, vraiment !! je n'ai jamais été bloqué car une for() était en route. Aussi, je bouge que sur 16 pixel donc ça fait un peu moins.
Non-Webmaster et
non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les
Webmasters .«- Pas Moo ! ^^