2013-07-28 102 views
0

我有更多的设计问题,然后编程专门。基本上我正在使用cocos2d(即将被移植到精灵套件)的等距tyle-map风格的游戏上工作,并且我正在尝试找出一些为敌人精灵实施AI的最佳实践。设计AI等距地图游戏

这是基本的逻辑我有:

-Enemy确定播放器和在该角度的球员是在 -Enemy将然后移动基于关闭此角的单个瓦片(即左,右,向上的位置, -Enemy将动画显示他们朝那个方向移动 - 如果玩家和敌人的距离小于X那么敌人会向玩家射击 - 如果玩家和敌人的距离是小于Y则敌人将向相反方向移动,朝向玩家移动 - 如果敌人发现未来的移动是碰撞,敌人将不会移动

这是一个非常基本的逻辑,我遇到了两个问题: - 当敌人检测到碰撞时,它会停止整个移动 -在玩家处于敌人之间的特定角度时,精灵图像将闪烁在两个不同的边界角度之间 -因为我有许多精灵在一个点产卵,他们都在同一个方向移动,并完全重叠,我想尝试和分散他们没有在地图上的生成点吨(so远远有5个生成点,每个生成约4-5个敌人)

我想看看有没有人有任何关于如何使这更复杂的指针,我可以避免这些问题,并开发更多的“智能ce“给敌人的精灵。

任何信息将不胜感激。

+1

属于上gamedev.stackexchange.com – LearnCocos2D

+4

http://gamedev.stackexchange.com – LearnCocos2D

回答

0

有很多不同的AI寻路算法。我特别喜欢的一种叫做A *(A Star),在水平和对角运动的二维网格上效果很好,并且应该通过微调来满足您的要求。

这里是其具有约A *一个很好的信息量的维基百科页面:

A* search algorithm

+0

我也推荐这页面来尝试不同的寻路算法:http://qiao.github.io/PathFinding.js/visual/ – fiddler

+0

我想我现在在阅读wiki时就明白了。我唯一想知道的是,如果启发式是必要的?我想在我的情况下,它的工作方式是我会通过目的地瓷砖位置和原始瓷砖位置 – melz2012

+0

启发式是沿着路径的每个点使用,而不仅仅是在开始和结束。它允许它快速计算最快的路径。 – Jsdodgers