Cocos2d iphone 如何在CCR中使用CCBezier?
我正试图在比赛中曲折前进。我用的是CCBezierCocos2d iphone 如何在CCR中使用CCBezier?,cocos2d-iphone,Cocos2d Iphone,我正试图在比赛中曲折前进。我用的是CCBezier ccBezierConfig bezier; bezier.controlPoint_1 = ccp(monster.position.x, actualY); bezier.controlPoint_2 = ccp(monster.position.x, actualY+40); bezier.endPosition = ccp(monster.position.x,actualY);
ccBezierConfig bezier;
bezier.controlPoint_1 = ccp(monster.position.x, actualY);
bezier.controlPoint_2 = ccp(monster.position.x, actualY+40);
bezier.endPosition = ccp(monster.position.x,actualY);
CCBezierTo *bezierAction = [CCBezierTo actionWithDuration:1 bezier:bezier];
id action = [CCSpawn actions:actionMove,bezierAction,nil];
id seq = [CCSequence actions:
action,
actionMoveDone,
nil];
[monster runAction:seq];
怪兽之字形只有一次,我怎么能一直这么做
对不起,我的英语不好
感谢您的关注。[monster runAction:[CCRepeatForever Action WithAction:seq]] 这将永远重复你创建的序列。这就是你想要的吗?
或者,您可以使用CCRepeat,如果您希望它只执行几次操作,然后停止
另外,我认为你的英语很好。我看到的第一个问题是,即使你重复贝塞尔动作,每次都会重复相同的贝塞尔曲线。假设您正在使用CCBezerTo,它将从动作开始时精灵的位置移动到bezier配置中的位置 您需要在每次完成时更新bezier配置,以便该配置表示从精灵位置(在上一个bezier的末尾)到您希望它曲折移动的位置的移动 我倾向于将CCBlockAction作为序列中的最后一个操作,而不是永远使用CCRepeatForever。在这个动作中,调用设置一切的例程 本质上,您正在设置一个递归操作,当它完成时,它会告诉自己重新开始,但此时精灵处于一个新的位置,因此在视觉上您将得到您想要的
当然,您需要某种控制才能使操作在某个时刻完成。在提问之前,我尝试了这个答案,但它只起了一次作用。