2011-04-17 57 views
1

我有下面的代碼在Game.java:Java小程序的KeyListener

public void start() 
{ 
    Thread thread = new Thread(this); 
    thread.start(); 

    this.world = new World(); 
} 

在世界一流的,我有我的遊戲,一組壁,食品和玩家的實際項目。

public class World { 
    private Food food; 
    private HashSet<Wall> walls = new HashSet<Wall>(); 
    private Player player; 
    ... 
} 

的問題如下:我想有我在播放器類keylisteners,但我似乎無法弄清楚如何得到這個...

我已經實現試Player.java中的KeyListener類,並實現了3個函數。然而,player.java不允許我使用this.addKeyListener(this)所以我的keyevents不會被觸發...

我該如何做這項工作?

+0

這是Swing(JApplet)嗎? AWT(使用Applet類)? – 2011-04-17 19:37:01

回答

1

你需要調用addKeyListenerApplet/JApplet並通過(相同!)player實例作爲聽衆。

+0

我的目標是保持一切的美好和組織(例如,只讓遊戲類與世界類而不是底層的食物和玩家類談話)。對於這個解決方案(它可以工作),我必須添加一個getPlayer()方法到World類,這對我來說看起來並不是很乾淨。或者我仍然在做錯什麼? – FinalFrager 2011-04-17 19:47:44

+0

你可以給'World'一個方法,從'Applet'初始化自己(通過添加處理程序) – SLaks 2011-04-17 19:56:44