Ich wollte eine Art RPG Spiel programmieren allerdings hänge ich bei bewegen des Charakters fest. Ich hab schon im Internet geguckt gesucht aber nichts gefunden. Ich poste hier mal alles was relevant sein könnte. Danke schon mal
Java:
public class KeyHandler implements KeyListener {
Var v = new Var();
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) {
v.up = true;
System.out.println("Oben");
}
if(e.getKeyCode() == KeyEvent.VK_DOWN) {
v.down = true;
System.out.println("Unten");
}
if(e.getKeyCode() == KeyEvent.VK_RIGHT) {
v.right = true;
System.out.println("rechts");
}
if(e.getKeyCode() == KeyEvent.VK_LEFT) {
v.left = true;
System.out.println("links");
}
}
@Override
public void keyReleased(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_UP) {
v.up = false;
System.out.println("losgelassen");
}
if(e.getKeyCode() == KeyEvent.VK_DOWN) {
v.down = false;
System.out.println("losgelassen");
}
if(e.getKeyCode() == KeyEvent.VK_RIGHT) {
v.right = false;
System.out.println("losgelassen");
}
if(e.getKeyCode() == KeyEvent.VK_LEFT) {
v.left = false;
System.out.println("losgelassen");
}
}
Java:
public class Movement {
Timer movement;
public Movement() {
movement = new Timer();
movement.scheduleAtFixedRate(new TimerTask() {
Var v = new Var();
@Override
public void run() {
if(v.up == true) {
v.y += 2;
}
else if(v.down == true) {
v.y -= 2;
}
else if(v.left == true) {
v.x -= 2;
}
if(v.right== true) {
v.x += 2;
}
}
}, 0, 6);
}
}
Java:
public class Draw extends JLabel {
Var load = new Var();
protected void paintComponent(Graphics p) {
super.paintComponent(p);
Var v = new Var();
Graphics2D g2d = (Graphics2D) p;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
p.drawImage(load.map, 0,0,640,640,null);
p.drawImage(load.held, v.x, v.y, 64, 64, null);
repaint();
}}