所以我正在做一个小游戏,玩家可以在地图上闲逛并收集东西,但也可能会遇到随机移动的机器人。我试图做到这一点,如果玩家站在机器人旁边并点击“打架”,机器人就会失去健康。
我能想到的唯一方法就是在bot类中创建一个ActionListener。因此,我试图制作一个'if'语句,如果播放器位于nextdoor tile上,并且单击'fight',则bot将失去健康。但是我从来没有使用过ActionListener,尽管看了很多例子但我仍然不理解它们。
地图上的机器人坐标是'ycord'和'xcord',玩家用'P'表示。
有没有办法说这个......
if(map[ycord+1][xcord].equals("P") && 'fightbutton' is pressed){
bot.health--;
非常感谢!
答案 0 :(得分:0)
我认为你不应该使用ActionListener。在您的案例中,ActionListeners需要在创建操作的实例上“注册”。所以每个机器人都需要在每个玩家身上注册一个ActionListener,这在我看来有点混乱。
相反,我只需在hitBy(Player)
上创建Bot
方法,该方法由某个高级Game
实例执行。战斗玩家可以执行类似game.madeHit(this)
的操作,游戏会搜索近距离机器人,然后执行bot.hitBy(player)
。这可以通过简单地遍历包含所有机器人的列表来完成;此列表应在Game
。