简单的ActionListener

时间:2013-04-12 14:19:04

标签: actionlistener

所以我正在做一个小游戏,玩家可以在地图上闲逛并收集东西,但也可能会遇到随机移动的机器人。我试图做到这一点,如果玩家站在机器人旁边并点击“打架”,机器人就会失去健康。

我能想到的唯一方法就是在bot类中创建一个ActionListener。因此,我试图制作一个'if'语句,如果播放器位于nextdoor tile上,并且单击'fight',则bot将失去健康。但是我从来没有使用过ActionListener,尽管看了很多例子但我仍然不理解它们。

地图上的机器人坐标是'ycord'和'xcord',玩家用'P'表示。

有没有办法说这个......

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

非常感谢!

1 个答案:

答案 0 :(得分:0)

我认为你不应该使用ActionListener。在您的案例中,ActionListeners需要在创建操作的实例上“注册”。所以每个机器人都需要在每个玩家身上注册一个ActionListener,这在我看来有点混乱。

相反,我只需在hitBy(Player)上创建Bot方法,该方法由某个高级Game实例执行。战斗玩家可以执行类似game.madeHit(this)的操作,游戏会搜索近距离机器人,然后执行bot.hitBy(player)。这可以通过简单地遍历包含所有机器人的列表来完成;此列表应在Game

中提供