Page 1 sur 1

Programmer un personnage qui saute

Publié : mar. 13/juil./2004 17:29
par Chris
Est-ce que quelqu'un connait un moyen simple de programmer un personnage qui saute?

Bon, j'explique:

Quand on saute sur place, par exemple, la vitesse augmente rapidement au début du saut (pendant l'élan), puis diminue progressivement jusqu'à 0 à partir du moment ou les pieds ne touchent plus le sol. A ce moment là, le personnage est suspendu en l'air. Puis sa vitesse augmente progressivement,(mais en sens inverse), jusqu'au moment ou il touche le sol (...et Splashhhh !!!, comme une bouse :lol:)

En fait, sur une échelle de temps, ça doit représenter une sorte de courbe

Il doit bien y avoir un formule, (simple, parce que les math et moi, on est un peu en froid :twisted: ), qui permette de faire quelque chose d'un peu réaliste!

Chris :)

Publié : mar. 13/juil./2004 18:30
par comtois
j'étais justement en train de bosser le sujet .
j'ai commencé une bricole , c'est un brouillon , j'attendais d'avoir arrangé un peu le truc avant de le poster, mais tu peux déjà y jeter un oeil .

http://perso.wanadoo.fr/comtois/M3D_Mat ... 130704.zip

Code : Tout sélectionner

V0=20 ; Vitesse initiale
X0=0 ;Position de départ   
oldX = X0
Y0=0 ; Position de départ 
g.f=9.81
Angle.f=45 ; angle initial 
Temps.f=0
While  y.f >= 0
x.f=V0 * (Cos(Angle * 0.0174533) * Temps) + X0
y.f=(-g/2 * Temps * Temps) + (V0 * Sin(Angle * 0.0174533) * Temps) + Y0
Pas.f = x - oldX
oldX = x
Debug "Temps = " + Str(Temps) + " x = " + StrF(x,2) + " y = " + StrF(y,2)  + " Pas = " + StrF(Pas)
Temps + 0.1
Wend

Publié : mar. 13/juil./2004 19:06
par Backup
c'est un truc qui pourrai mem se passer de Math

si on pouvai utiliser les boucle for next step avec un step en variable
et non entier !!!

on aurai pu faire
vitesse=5 ; au debut il montera de 5 en 5

for pixel = 0 to 100 step vitesse ; le sprite monte pendant 100 boucle
vitesse=vitesse-0.5

si on fait correspondre le y du sprite avec pixel
a chaque boucle on diminue le pas de monter
du coup il monte de moins en moins vite

next pixel



dommage hein ? :?

Publié : mar. 13/juil./2004 22:10
par comtois
http://purebasic.hmt-forum.com/viewtopic.php?t=91


Extrait de la partie utile .

Code : Tout sélectionner

DecAttraction.f = 0.05 
Attraction.f = 0 
Pas.f = 0 

Repeat 
  
  ClearScreen(0, 0, 0) 
  
  If ExamineKeyboard() 
  
    If KeyboardPushed(#PB_Key_Space) And Attraction = 0 And  AutoriseSaut 
      Attraction = 1.6 : DecAttraction = 0.05 
    EndIf 
   
  EndIf  
  
  ; LE perso 
  MoveEntity( 0 , Cosd( entity(0)\AngleX ) * Pas , Attraction, -Sind( entity(0)\AngleX ) * Pas ) 
  
  ; Gestion de l'attraction 
  Attraction - DecAttraction 

Mais je préfère la première solution , on peut régler la vitesse ,l'angle .

Il y les bases pour faire le jeu du canon , ou chacun tire à tour de rôle pour tenter de détruire la maison de l'autre .Il manque le vent .