0

我将如何创建随机路径并让精灵跟随它?
一旦它到达路径的尽头就暂停并开始新的路径,如果我需要还有不止一个?
我在想在屏幕上生成随机坐标并使用 CCMoveTo 但这会形成一条直线并且很无聊。我想复制飞来飞去的昆虫的行为。谁能指出我正确的方向?

4

2 回答 2

0

您可以使用CCBeizierToCCBezierBy 例如:

#define randomPoint ccp(CCRANDOM_0_1()*[[CCDirector sharedDirector] winSize].width,CCRANDOM_0_1()*[[CCDirector sharedDirector] winSize].height)

ccBezierConfig bezier;

bezier.controlPoint_1 = randomPoint;

bezier.controlPoint_2 = randomPoint;

bezier.endPosition = randomPoint;

CCBezierBy* bez = [CCBezierBy actionWithDuration:5.0f bezier:bezier];

[sprite runAction:bez];
于 2012-12-20T02:55:19.370 回答
0

这个简单的方法怎么样:有一个持续的速度向量,在替换你的动作之前float vx, vy;标准化它以确保恒定的速度。然而,在归一化之前,添加小的以零为中心的随机值,例如 between和to和。随机值的非常小的范围将为您提供平滑的持久路径,较大的范围将使路径不那么持久并且像昆虫一样抖动。另一种选择是在每次更新时再掷一次骰子,并且以非常低的概率对标准化和标准化之前进行非常大的更改,从而使您的昆虫在随机实例中非常突然地改变其路径。sqrtf((vx * vx) + (vy * vy))CCMoveTo-0.3f0.3fvxvyvxvy

于 2012-12-19T23:07:19.523 回答