0

我有更多的设计问题,然后是专门编程。基本上,我正在使用 cocos2d(即将迁移到 sprite kit)开发一个等距风格地图风格的游戏,并且我正在尝试找出一些最佳实践来为敌人的 sprite 实现 AI。

这是我的基本逻辑:

- 敌人确定玩家的位置和玩家所在的角度 - 敌人将根据这个角度移动单个图块(即左、右、上、下、左上等......) - 敌人将动画显示 ccaction他们朝那个方向移动 - 如果玩家和敌人的距离小于 X,那么敌人将向玩家开火 - 如果玩家和敌人的距离小于 Y,那么敌人将朝着与玩家相反的瓷砖方向移动 - 如果敌人检测到未来的瓷砖移动是碰撞,敌人不会移动

这是一个非常基本的逻辑,我遇到了两个问题: - 当敌人检测到碰撞时,它将完全停止移动 - 在玩家与敌人之间的某些角度,精灵图像将在 2 之间来回闪烁不同的边界角度 - 因为我有许多精灵在一个点产生,它们都在同一个方向移动并且完全重叠,我想尝试将它们分开而不在地图上产生大量的产生点(到目前为止有 5 个产生点,每个产生大约 4-5 个敌人)

我想看看那里是否有人对如何使这个更复杂有任何好的指示,我可以潜在地避免这些问题并为敌人的精灵开发更多的“智能”。

任何信息,将不胜感激。

4

1 回答 1

0

AI寻路有许多不同的算法。我特别喜欢的一种叫做 A*(A 星),它在具有水平和对角运动的 2-D 网格上工作得非常好,只需稍作调整即可满足您的要求。

这是维基百科页面,其中包含大量关于 A* 的信息:

A* 搜索算法

于 2013-07-28T09:18:16.127 回答