Java zdarzenia klawiszy

Java zdarzenia klawiszy
Skatty
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 10 lat
  • Lokalizacja:Kraków
  • Postów:139
0

Witam!
Myślałem o zablokowaniu chodzenia na ukos w mojej mini-grze, ale nie jestem do końca pewien jak to osiągnąć.
Otóż myślałem o podaniu 2klawiszy na raz w 1 sprawdzaniu:

Kopiuj
		if (e.getKeyCode() == KeyEvent.VK_W | KeyEvent.VK_D) {
			up = false;
			right = false;
			System.out.print("No move Up-Right");
		}

Oczywiście ten kod jest błędny. Czy ktoś może mnie naprowadzić jak takie coś napisać?(trzeba tworzyć else if razem z if czy może da się to jakoś napisać w 1 "if'e")

Patryk27
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
0

Tym sposobem:

Kopiuj
if (e.getKeyCode() == KeyEvent.VK_W && e.getKeyCode() == KeyEvent.VK_D)

Lecz nie wiem, czy to w taki sposób zadziała.


Kerai
lol, nie zadziała...
Kerai
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:London
1

Gdy ktoś wciska klawisz to ustawiasz mu kierunek i każesz iść.
Gdy ktoś puszcza klawisz, to sprawdzasz czy puszczany klawisz odpowiada aktualnemu kierunkowi gracza i jeśli tak, to każesz mu stanąć.
Ludzie sterując postaciami gdy chcą zmienić kierunek zwykle najpierw wciskają nowy kierunek, dopiero potem puszczają stary. robiąc tak jak podałem sprawiamy, że gdy ktoś trzyma UP i wciśnie LEFT, to postać zaczyna iść w lewo i przestaje w górę.. zaraz po tym gracz puści UP - co nie będzie miało o efektu i tak ma być. Wszystko inne będzie wkurwiające dla gracza.

R9
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 11 lat
0

getKeyCode()o; zwraca klawisz którego dotyczy aktualne zdarzenie.
Użyj mapy, albo tablicy do przechowywania stanów klawiszy, jeśli potrzebujesz. Lepiej jednak w tym wypadku przyjmować zawsze po prostu nowy kierunek przy keyPresssed.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.