Java zdarzenia klawiszy

Odpowiedz Nowy wątek
2011-09-04 20:21
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:

        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")

Pozostało 580 znaków

2011-09-04 20:53
0

Tym sposobem:

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

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


lol, nie zadziała... - Kerai 2011-09-04 21:06

Pozostało 580 znaków

2011-09-04 21:11

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.

Pozostało 580 znaków

2011-09-04 22:50
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.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0