[Allegro] skok postaci
Ostatnio zmodyfikowano 2012-06-03 15:28
Winner Temat założony przez niniejszego użytkownika |
[Allegro] skok postaci » 2012-06-02 12:48:28 Mam problem, otóż chciałem zrobić takie coś, że po naciśnięciu jakiegoś klawisza postać zaczyna się wznosić, ale nie tak zwyczajnie. Tylko po nacisnięciu klawisza postac się szybko wznosi a potem coraz wolniej, aż w końcu osiąga predkość zerową(staje) i zaczyna powoli opadać i przyspiesza podczas opadania. Macie jakies pomysł jak to zrobić? |
|
m4tx |
» 2012-06-02 13:17:52 postać zaczyna się wznosić, ale nie tak zwyczajnie. Tylko po nacisnięciu klawisza postac się szybko wznosi a potem coraz wolniej, aż w końcu osiąga predkość zerową(staje) i zaczyna powoli opadać i przyspiesza podczas opadania |
To się grawitacja nazywa :P |
|
akwes |
» 2012-06-02 13:24:16 s(k) = s(p) + v(p) * t + (a * t^2)/2
oraz G = 9,80665 m/s^2
Fizyka z gimnazjum... |
|
Winner Temat założony przez niniejszego użytkownika |
» 2012-06-02 13:56:22 A co znaczy w tym wzorze k i p? |
|
akwes |
» 2012-06-02 14:01:03 Niestety nie mam tu indeksów dolnych i górnych.
k to końcowa, a p to początkowa.
Ogólnie to wzór powinieneś i tak kojarzyć :P Cały skok będziesz wyliczał z ruchu jednostajnego przyspieszonego i opóźnionego. |
|
Admixior |
» 2012-06-02 19:38:44 Ja w jednym moim programie grawitację na postać załatwiłem w prosty sposób. Ty też możesz tak zrobić. To taki zarys: float speed = - 2;
while( 1 ) { if( klawisz_spacja ) { skok = true; } if( skok ) { speed += 0.1f; postac.Move( 0, speed ); if( kontakt_z_podlozem ) { postac.Move( 0, y ) skok = false; } wnd.Draw( postac ) } }
Kawałek kodu robi to że postać powoli się wznosi(gdy speed jest na minusie), osiąga punkt zero (gdy speed jest równe zero), i opada (gdy speed na plusie) Gdy skończy opadać może się tak stać (bardzo często) że ostatnie przesunięcie będzie za duże i postać wejdzie do podłoża więc trzeba przesunąć tak żeby była na równi. y=pos_y_podloza-pos_y_postaci; kontakt z podlozem mozna w ten sam sposób obliczyć (pos_y_podloza>(pos_y_postaci+height_postaci)) |
|
Winner Temat założony przez niniejszego użytkownika |
» 2012-06-03 15:28:23 Okey, dzięki wszystkim za odpowiedź. Postaram się coś wykombinować. |
|
« 1 » |