2

不久前,我问了一个问题,一位用户友好地回复我,解释说有这个插件工具可以用来创建快速贝塞尔曲线原型。

我尝试并制作了这个:

这就是我用工具制作的

认为它会在这个 ccBezierConfig 中完美翻译:

ccBezierConfig bezier;
self.position = CGPointMake(-10.0f, 400.0f);
bezier.controlPoint_1 = CGPointMake(160, 190.0f);
bezier.controlPoint_2 = CGPointMake(200, 190.0f);
bezier.endPosition =CGPointMake(340.0f,280.0f);

id bezierForward = [CCBezierBy actionWithDuration:3 bezier:bezier];    
[self runAction: [CCSequence actions:
                  bezierForward, [CCHide action],
                  nil]];

不幸的是,我得到的路径并不像我所期望的那样安静。角色从屏幕的左上角开始移动,然后向上移动,我看不到预期的移动。

关于我做错了什么的任何解释?

顺便说一句.. 我在 iOS 6.0 上使用 Cocos2d 2.0,视网膜显示 iPod touch 第 4 代。

编辑:

另一个例子..

我认为这种配置会这样做 然后从头到尾做对称的事情,但“颠倒”。

关于我做错了什么的任何建议?

    ccBezierConfig bezier;

     self.position = CGPointMake(0.0f, 150.0f);
     bezier.controlPoint_1 = CGPointMake(-20.0f, 290.0f);
     bezier.controlPoint_2 = CGPointMake(260, 290.0f);
     bezier.endPosition =CGPointMake(340.0f,150.0f);

    id bezierForward = [CCBezierBy actionWithDuration:3 bezier:bezier];


    ccBezierConfig bezier2;
    bezier2.controlPoint_1 = CGPointMake(340.0f, 10.0f);
    bezier2.controlPoint_2 = CGPointMake(80, 10.0f);
    bezier2.endPosition =CGPointMake(-20.0f,150.0f);

    id bezierReturn = [CCBezierBy actionWithDuration:3 bezier:bezier2];


    [self runAction: [CCSequence actions:
                      bezierForward, bezierReturn, [CCHide action],
                      nil]];
4

1 回答 1

4

我使用的是 CCBezierBy,但这些示例基于 CCBezierTo 公式。因此,如果我使用 CCBezierTo 代替 CCBezierBy,一切都会按预期工作。

于 2013-02-08T09:53:59.200 回答