我有更多的设计问题,然后专门编程。基本上我正在使用cocos2d进行等距tyle-map风格的游戏(很快将被迁移到sprite kit),我正在试图找出一些为敌人精灵实现AI的最佳实践。
这是我的基本逻辑:
- 敌人决定玩家的位置和玩家所处的角度 - 然后敌人会根据这个角度移动一个瓦片(即左,右,上,下,左上等......) - 敌人将通过一个动作表明他们向这个方向移动 - 如果玩家和敌人的距离小于X,则敌人将向玩家开火 - 如果玩家和敌人的距离小于Y,那么敌人将以相反的方向移动朝向玩家移动 - 如果敌人发现未来的瓷砖移动是碰撞,则敌人不会移动
这是一个非常基本的逻辑,我遇到了两个问题: - 当敌人发现碰撞时,它将完全停止移动 - 在玩家处于敌人之间的某些角度,精灵图像将在2个不同的边界角度之间来回闪烁 - 因为我有许多精灵在一个点上产生它们都在同一个方向上移动并完全重叠,我想尝试将它们分开而不会在地图上产生大量的生成点(到目前为止有5个产卵点,每个产卵大约4-5个敌人)
我想知道是否有人在如何使这个更复杂的地方有任何好的指示,我可以潜在地避免这些问题,并为敌人的精灵开发更多的“情报”。
任何信息都将不胜感激。
答案 0 :(得分:0)
AI寻路有许多不同的算法。我特别喜欢的一款名为A *(A Star),在水平和斜向移动的二维网格上运行良好,并且可以通过微调来满足您的要求。
这是维基百科页面,其中包含大量有关A *的信息: