0

所以我正在制作一个小游戏,玩家可以在地图上四处游荡并收集东西,但也可能会遇到随机移动的机器人。我正在努力做到这一点,如果玩家站在机器人旁边并点击“战斗”,机器人就会失去健康。

我能想到的唯一方法是在机器人类中创建一个 ActionListener 。所以我试图做出一个“如果”声明,例如,如果玩家在隔壁的瓷砖上,然后点击“战斗”,机器人就会失去健康。但是,我从未使用过 ActionListener,尽管查看了很多示例,但我仍然不理解它们。

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

有没有办法这样说...

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

非常感谢!

4

1 回答 1

0

我认为你不应该使用 ActionListener。ActionListeners 需要在创建动作的实例上“注册”,在你的情况下是玩家。所以每个机器人都需要在每个玩家上注册一个 ActionListener,这(在我看来)有点混乱。

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

于 2013-04-12T14:28:07.967 回答