2016-08-29 3 views
-2

Ich arbeite an einem Spiel (das Repo ist here), und ich laufe in einem Problem: Wenn das Spiel zu GamePanel wechseln die Tastatur funktioniert nicht mehr.Java `KeyListener` funktioniert nicht

GamePanel.java korrekt anrufen GUI#registerSpriteManager, aber Tastaturaktionen werden nicht von der SpriteManager aufgezeichnet.

In GamePanel.java

public GamePanel(GUI gui) { 
    this.gui = gui; 
    this.back = new Background(this); 

    this.manager = new SpriteManager(); 
    this.manager.add(new Roflcopter(
     GUI.WIDTH/2, 
     GUI.HEIGHT/2 
    )); 
    gui.regiterSpriteManager(this.manager); 

    this.level = new Level1(this.manager); 
} 

In GUI.java

public void regiterSpriteManager(SpriteManager manager) { 
    this.manager = manager; 
    this.addKeyListener(manager); 
} 

Warum funktioniert es nicht?

+1

Bitte geben Sie die relevanten Teile des Codes hier in dieser Frage das Hinzufügen stattdessen in einem Repository, um es zu verknüpfen. – hotzst

+1

Bitte geben Sie den entsprechenden Quellcode ein, lesen Sie bitte http://StackOverflow.com/questions/how-to-ask – thst

+0

@thst Sie haben einen Link zum Github Repo gepostet. Der gesamte Quellcode, von dem Sie immer geträumt haben, ist da. – byxor

Antwort

2

fixiert ich das Problem durch this.setFocusable(true); in GUI.java