
比起将对象沿着直线移动更进一步,就是随机移动目标。说实话,随机运动在某些情况下可以被认为是无脑运动。我们就试着用代码来模拟一下苍蝇的大脑(我们姑且认为苍蝇飞行是无脑的)。
这里我们会用到 rand 随机函数,这个写过代码的人都知道吧 ~
随机飞行就是随机改变苍蝇在 X 轴和 Y 轴上的速度值。所以代码如下:
x_velocity = -8 + rand()%16;
y_velocity = -8 + rand()%16;
x_velocity和y_velocity就分别代表苍蝇在X轴和Y轴上的速度。是不是非常简单?然后你就可以用上一章介绍的直线运动的代码来对苍蝇进行坐标移动
x = x + x_velocity;
y = y + y_velocity;
但这样的代码实际显示效果不太好,会让苍蝇看起来在一个点上发抖。因为苍蝇总会在一个方向上运动一段时间。所以,为了模仿的真实性,我们可以将以上这段代码包裹在一个WHILE语句中,让苍蝇在一个方向上多运动一会儿。
int count = 0;
while(++count < 10){
x = x + x_velocity;
y = y + y_velocity;
}
这里有一位大师写的苍蝇AI程序,你可以下载看看效果。你只需要关注其中的Flys_AI函数即可。
这章课程就到这里了,也相当简单吧?不过毕竟是无脑运动,虽然这对于模拟智能生物行为是非常重要的。下一章会教给你跟踪算法。想象一下跟踪导弹的威力吧~哈哈。快翻开下一章的面纱吧~