![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 82 Pomógł: 1 Dołączył: 19.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam Was! Ostatnimi czasy zacząłem pisać stronę, miała to być prosta gra - bijatyka. Zrobiłem by moja postać się poruszała. Tzw:
Kod $(document).keydown( function (e) { var position = lucario.position(); switch (e.keyCode) { case 37: // Left lucario_move(left); break; case 38: // Up lucario_move(up); break; case 39: // Right lucario_move(right); break; case 40: // Bottom lucario_move(bottom); break; } }); I mam teraz mały problem, którego nie potrafię ogarnąć. Otóż, gdy wciskam wyżej wymieniony klawisz, którykolwiek, pętla zachowuję się jakby ktoś ją włączył raz, poczekał i dopiero włączył powtarzalność... Ehh... Wytłumaczę to inaczej. Za pomocą ilustracji ![]() Więc [ ] - nic, a [W] - to wykonywanie czynności. Gdy wciskam klawisz raz: [W] Gdy przytrzymuję: [W][ ][ ]][W][W][W]... Nadal nie wiem jak nazwać ten efekt ![]() Jeżeli wiecie jak na to zaradzić, proszę o pomoc! |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 14 Dołączył: 2.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ja kiedyś też tworzyłem grę może to nie był javascript, ale problem można rozwiązać tak jak tam. Za pomocą zmiennych dla klawiszy.
przykład: Kod var key_left=false; var key_right=false; $(document).keydown( function (e) { switch (e.keyCode) { case 37: key_left=true; break; case 39: key_right=true; break; } }); $(document).keyup( function (e) { switch (e.keyCode) { case 37: key_left=false; break; case 39: key_right=false; break; } }); setInterval(function(){ if(key_left) { lucario_move(left); } else if(key_right) { lucario_move(right); } },50); w taki sposób ustalasz nawet częstotliwość działania klawiszy w funkcji setInterval Krótki opis zasady działania: Gdy wciskamy klawisz lewo lub prawo przełączamy odpowiednią zmienną na true. Gdy puszczamy klawisz zmienna wraca do wartości false. Funkcja setInterval sprawdza czy dany klawisz jest aktualnie wciśnięty. Nie uważaj jak stosujesz instrukcje warunkowe if... else if. czasem warto pominąć else by sprawdzić każdy klawisz. Ten post edytował radziopoke 17.02.2013, 15:47:48 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 05:59 |