1
public void buttons(){
int c = WHEN_IN_FOCUSED_WINDOW;
Action right = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
player.setVX(2);
}
};
Action stop = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
player.setVX(0);
player.setVY(0);
}
};
Action up = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
player.setVY(-2);
}
};
getInputMap(c).put(KeyStroke.getKeyStroke("D"), "pressed");
getActionMap().put("pressed", right);
getInputMap(c).put(KeyStroke.getKeyStroke("released D"), "released");
getActionMap().put("released", stop);
getInputMap(c).put(KeyStroke.getKeyStroke("W"), "pressed");
getActionMap().put("pressed", up);
getInputMap(c).put(KeyStroke.getKeyStroke("released W"), "released");
getActionMap().put("released", stop);
}
Почему, что, когда я нажимаю W или D она идет вверх ...Что не так с этим привязкой клавиш?
В чем проблема?
D должен идти прямо
Вы уверены, что это ключевые привязок и не 'метод setVX'? Добавьте инструкцию debug к каждому из методов 'actionPerformed', чтобы увидеть, действительно ли нажатие' D' вызывает 'setVX' (методом' actionPerformed') – MadProgrammer
да мой setVX прав, но когда я избавлюсь от своего setVY actionperformed – user2113792
my VX work .. Я не знаю, почему он работает, когда я избавился от моего VY ation. – user2113792