2013-04-12 67 views
0

因此,我正在製作一個小遊戲,玩家可以在地圖上漫遊並收集東西,但也可能會遇到隨機移動的漫遊器。我試圖做到這一點,如果玩家和站在機器人旁邊並點擊「戰鬥」,機器人就會失去健康。Simple ActionListener

我能想到做到這一點的唯一方法是在bot類中創建一個ActionListener。所以我試圖做出一個'如果'的陳述,如果玩家在旁邊的瓦片上,並點擊'戰鬥',機器人將失去健康。不過,我從來沒有使用ActionListener,儘管看了很多示例,但我仍然不明白它們。

機器人在地圖上的座標是'ycord'和'xcord',玩家用'P'表示。

有沒有說這句話的方式......

if(map[ycord+1][xcord].equals("P") && 'fightbutton' is pressed){ 
       bot.health--; 

非常感謝!

回答

0

我認爲你不應該使用ActionListener。 ActionListeners需要在創建動作的實例上「註冊」,在您的案例玩家中。所以每個機器人都需要爲每個玩家註冊一個ActionListener,這在我看來是有點混亂的。

相反,我只是簡單地創建一個hitBy(Player)方法Bot這是由一些上級Game實例執行。戰鬥玩家可以做類似game.madeHit(this)的遊戲,遊戲搜索附近的機器人,然後執行bot.hitBy(player)。這可以通過遍歷包含所有機器人的列表來完成;此列表應在Game中可用。