我在java中第一次创建游戏,而我现在正试图让我的僵尸跟踪并关注玩家。下面是我的代码。我创建了一个控制器类,并使用链表创建多个僵尸。然后在我的僵尸更新方法中,我使用简单的if语句为僵尸跟踪播放器。问题是僵尸跟踪玩家的初始起始位置,但不是跟踪他移动的位置。
在zombie update()方法中,我使用了System.println(player.getX());并且它表明玩家的位置没有在僵尸类中更新,所以这就是为什么他们只追踪到它的起始位置。我无法弄清楚如何解决这个问题。任何帮助将不胜感激。
ZOMBIE CLASS:
{{1}}
球员级别
公共类播放器扩展实体{
{{1}}
}
答案 0 :(得分:2)
这是因为你的敌人类有一个玩家对象而你的游戏类有一个完全不同的玩家对象。所以你的玩家位置在敌人类中总是相同的。因此,在游戏类中进行敌人AI运动更合乎逻辑。无论是敌人还是玩家,你的玩家或敌人类应该只是保持角色的位置,方向或加载图像。
我建议为敌人和玩家类创建一个父类,因为它们都具有相似的特征。