Javafx KeyPressed Steuerung

Fues-C

Neues Mitglied
Hallihallo,
folgendes: Ich versuche gerade ein kleines 2D-Rennauto-Spiel zu implementieren, bei der Steuerung meines Autos hab ich allerdings das Problem, dass ich entweder beschleunige ODER lenke.
Wenn ich beschleunige und dann nach links fahre, tut er das, hört aber auf zu beschleunigen. Beim loslassen der links-Taste macht das Auto garnichts mehr.
edit: Während ich beschleunigen aber nach wie vor gedrückt halte.

Hier mal mein Code:
Code:
@Override
    public void start(Stage stage) throws Exception {

        stage.setScene(new Scene(createContent()));
        stage.getScene().addEventFilter(KeyEvent.KEY_PRESSED,e -> {

            if(e.getCode() == KeyCode.W)
                player.setSpeed(0.25);
              
                      
            if(e.getCode() == KeyCode.A) {
                if (player.getSpeed() != 0) {
                    player.rotateLeft();
                }              
            }
            if(e.getCode() == KeyCode.S)
                player.setSpeed(-0.05);
          
            if(e.getCode() == KeyCode.D) {
                if (player.getSpeed() != 0) {
                    player.rotateRight();
                }              
            }          
        });
        stage.show();
    }

Ich dachte erst an eine Lösung mit Threads, mein Tutor meinte allerdings, das sei unnötig kompliziert.
Vielleicht hat hier jemand einen Tipp für mich?
 
Cool vielen dank hat geholfen. Habe normale booleans für jeden einzelnen Fall in einer extra Klasse Carcontrolls benutzt und in einer Methode einfach abgerufen ob die true sind. Herzlichen Dank!
 

Zurück
Oben