我如何创建随机路径并使用精灵跟随它?
一旦它到达路径的末端以暂停并开始一条新路径,并且如果需要还有多个路径?
我正在考虑在屏幕上生成随机坐标并使用CCMoveTo,但这会形成一条直线并且会很无聊。我想复制一只飞来飞去的昆虫的行为。有人能指出我正确的方向吗?
答案 0 :(得分:0)
这个简单的配方如何:在替换float vx, vy;
动作之前,使用sqrtf((vx * vx) + (vy * vy))
标准化的持续速度矢量CCMoveTo
以确保恒定速度。然而,在归一化之前,添加小的零中心随机值,例如,在-0.3f
和0.3f
到vx
和vy
之间。随机值的非常小的范围将为您提供平滑的持久路径,较大的范围将使路径不那么持久并且像昆虫的那样紧张。另一种选择是在每次更新时再次掷骰子,并且在概率化之前对vx
和vy
做出非常大的改变,使你的昆虫突然随机改变它的路径实例
答案 1 :(得分:0)
您可以使用CCBeizierTo
或CCBezierBy
例如:
#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];