我正在使用legs演示的一个调整,从开放进程和尝试一个简单的回避AI为我生成的蜘蛛。目标是让AI蜘蛛避开玩家控制的蜘蛛。我的代码:
float distance = sqrt((c2.currentX - creature.currentX)*(c2.currentX - creature.currentX)+(c2.currentY-creature.currentY)*(c2.currentY-creature.currentY));
if (distance < c2.radius){
c2.heading = atan(c2.heading);
if(millis() - time >= wait){
time = millis();
}
}这位于我更新后的draw() andI中,它收到了AI的响应,但得到的响应要么是AI静止不动,要么是离开屏幕。任何帮助都将不胜感激。
发布于 2013-12-07 09:01:55
如果你想让AI爬虫直接离开玩家,那么像这样计算你的方向可能会更好(尽管在看不到所有代码的情况下很难确定):
c2.heading = atan2(c2.currentY - creature.currentY, c2.currentX - creature.currentX);这样做的目的是计算从creature到c2的角度,并将其用作标题。结果应该是c2将直接离开creature。
(我假设c2就是这里的AI爬虫!)
顺便说一句,向atan传递一个角度可能不会给你带来任何有用的东西。它被设计为接受三角比率作为参数。atan2非常类似,但它通常更有用,因为它为您做了更多的工作。
https://stackoverflow.com/questions/20426473
复制相似问题