Таким образом, обработчик клавиатуры печатает правильные коды клавиш, но в классе Playerentity ничего не срабатывает в выражениях IF. Я пытался сузить проблему только до этой проблемы. В других классах я интегрировал метод ES C -exit, он работает там, но, к сожалению, не в этом классе. Было бы неплохо получить некоторую вашу помощь, и я надеюсь, что у меня сейчас достаточно описания для StackOverflow, потому что я не знаю, что написать. Это мой первый вопрос, и я очень отчаянный и начинающий java, поэтому, пожалуйста, помогите мне:
package entities;
import java.awt.event.KeyEvent;
import controllers.KeyboardHandler;
public class PlayerEntity extends CircularEntity {
private static final double VELOCITY = 36d;
private KeyboardHandler keyboardHandler;
private int moveX;
private int moveY;
public PlayerEntity(double x, double y)
super(40);
keyboardHandler = new KeyboardHandler();
this.x = x;
this.y = y;
}
@Override
public void tick(long milliSecondsPassed) {
moveX = 0;
moveY = 0;
if (keyboardHandler.getPressedKeys().contains(KeyEvent.VK_W)) {
moveY -= 1;
System.out.println("move");
}
if (keyboardHandler.getPressedKeys().contains(KeyEvent.VK_S)) {
moveY += 1;
}
if (keyboardHandler.getPressedKeys().contains(KeyEvent.VK_A)) {
moveX -= 1;
}
if (keyboardHandler.getPressedKeys().contains(KeyEvent.VK_D)) {
moveX += 1;
}
double moveDistance = (milliSecondsPassed / 1000d) * VELOCITY;
move(moveDistance * moveX, moveDistance * moveY, moveDistance);
}
}
package controllers;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.List;
public class KeyboardHandler extends KeyAdapter {
List<Integer> keysPressed;
public KeyboardHandler() {
keysPressed = new ArrayList<Integer>();
}
public void keyPressed(KeyEvent e) {
if (!keysPressed.contains(e.getKeyCode())) {
keysPressed.add(e.getKeyCode());
System.out.println("Add" + e.getKeyCode());
}
}
public void keyReleased(KeyEvent e) {
keysPressed.remove(Integer.valueOf(e.getKeyCode()));
}
public List<Integer> getPressedKeys() {
return keysPressed;
}
}