So the Keyboardhandler prints the right keycodes but in the Playerentity class nothing gets triggered in the IF-Statements. I tried to narrow down the problem to only this problem. In other classes i integrated an ESC-exit method it works there but sadly not in this class. Would be nice to receive some of your help and i hope i have now enough discription for StackOverflow because i dont know what to write. Its my first question and im very desperate and a java beginner so please help me:
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 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;
}
}
Aucun commentaire:
Enregistrer un commentaire