蜘蛛模型碰撞响应

时间:2013-12-06 14:34:39

标签: artificial-intelligence processing vector-graphics

我正在使用开放处理中的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()中,我得到了AI的响应,但响应是AI静止不动或从屏幕上拍摄。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果你想让AI蜘蛛直接离开玩家,那么像这样计算你的标题可能会更好(虽然很难说没有看到你的所有代码):

c2.heading = atan2(c2.currentY - creature.currentY, c2.currentX - creature.currentX);

它的作用是计算从creaturec2的角度,并将其用作标题。结果应该是c2将直接远离creature

(我假设c2是这里的AI蜘蛛!)

作为旁注,将角度传递到atan不太可能给你任何有用的东西。它被设计为接受三角比率作为参数。 atan2非常相似,但它通常更有用,因为它可以为您完成更多的工作。