Hallo,
ich stehe vor einem Problem, das eigentlich keines sein sollte.
Ich habe eine main-Class, in der eine while-Schleife mit Sys.out.println
existiert, die bei einem bestimmten Tastendruck true und sonst false liefern sollte.
Dann gibt es noch die Keyboard-Klasse, die den Tastendruck prüft und die
Boolean-Werte festlegt. Dann wird über einen getter der Wert an die Main
übergeben, zum Ausgeben.
Irgendwie wird aber immer nur ein false-Wert ausgegeben. Ich verstehe die
Welt nicht mehr, wo liegt der Fehler? Ich wäre jedem sehr verbunden,
der mir da weiterhelfen könnte.
ich stehe vor einem Problem, das eigentlich keines sein sollte.
Ich habe eine main-Class, in der eine while-Schleife mit Sys.out.println
existiert, die bei einem bestimmten Tastendruck true und sonst false liefern sollte.
Java:
package gui;
import javax.swing.JFrame;
public class main {
public static void main(String[] args) {
Frame f = new Frame();
Player player = new Player();
Keyboard keyboard = new Keyboard();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(800, 600);
f.setVisible(true);
f.setResizable(false);
while(true){
System.out.println(keyboard.getUp());
f.repaintScreen();
try {
Thread.sleep(15);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Dann gibt es noch die Keyboard-Klasse, die den Tastendruck prüft und die
Boolean-Werte festlegt. Dann wird über einen getter der Wert an die Main
übergeben, zum Ausgeben.
Java:
package gui;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Keyboard implements KeyListener{
private boolean left=false;
private boolean right=false;
private boolean up=false;
private boolean down=false;
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_W)up=true;
if(e.getKeyCode()==KeyEvent.VK_A)left=true;
if(e.getKeyCode()==KeyEvent.VK_S)down=true;
if(e.getKeyCode()==KeyEvent.VK_D)right=true;
}
@Override
public void keyReleased(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_W)up=false;
if(e.getKeyCode()==KeyEvent.VK_A)left=false;
if(e.getKeyCode()==KeyEvent.VK_S)down=false;
if(e.getKeyCode()==KeyEvent.VK_D)right=false;
}
boolean getUp(){
return up;
}
boolean getDown(){
return down;
}
boolean getLeft(){
return left;
}
boolean getRight(){
return right;
}
}
Irgendwie wird aber immer nur ein false-Wert ausgegeben. Ich verstehe die
Welt nicht mehr, wo liegt der Fehler? Ich wäre jedem sehr verbunden,
der mir da weiterhelfen könnte.
Zuletzt bearbeitet: