的Cocos2D和iOS:无法理解使用使用ccBezierConfig控制点(Cocos2d and

2019-07-31 14:26发布

编辑:如果这个问题写的不好看看视频( 3 ),相同的链接在本页面的底部。

我想提请使用ccBezierConfig和Cocos2d一个非常简单的贝塞尔曲线。 阅读维基百科上我试着了解了一下控制点,并找到该图片:

http://upload.wikimedia.org/wikipedia/commons/thumb/b/bf/Bezier_2_big.png/240px-Bezier_2_big.png

如果你看看我从中拍摄影像的维基百科页面上有一个很酷的动画。 看看这里 。

这是我使用的代码:

        CCSprite *r = [CCSprite spriteWithFile:@"hi.png"];
        r.anchorPoint = CGPointMake(0.5f, 0.5f);
        r.position = CGPointMake(0.0f, 200.0f);

        ccBezierConfig bezier;
        bezier.controlPoint_1 = CGPointMake(0.0f, 200.0f);
        bezier.controlPoint_1 = CGPointMake(180.0f, 330.0f);
        bezier.endPosition = CGPointMake(320.0f,200.0f);

        id bezierForward = [CCBezierBy actionWithDuration:1 bezier:bezier];
        [r runAction:bezierForward];
        [self addChild:r z:0 tag:77];

该应用程序在肖像模式运行,我的猜测相匹配的控制点1和那些在我的代码是:

sprite.position should correspond to P0
bezier.controlPoint_1 should correspond to P0 
bezier.controlPoint_2 should correspond to P1
bezier.endPosition  should correspond to P2

我曾尝试两种方法。 通过设置精灵的位置,并通过不设置它。

我以为,位置应同controlPoint_1在维基百科模式1只有三个点。

我得到的输出,我不明白安静..我用它制成的一个小视频,是一个私人的YouTube视频:

看到这里的视频点击

Answer 1:

OK,答案很简单...

二次贝塞尔曲线是没有的cocos2d得出的一个。 相反,检查是否有相同的wiki页面三次Bezier曲线 。 这就是你应该寻找的。

  1. 初始位置是子画面的位置(P0)
  2. 控制点1和2是P1&P2,分别。
  3. 终点是终点。

尼斯视频,顺便说一句,我很喜欢吧XD。


从证据CCActionInterval.h在cocos2d的库文件:

/** An action that moves the target with a cubic Bezier curve by a certain distance.
 */
@interface CCBezierBy : CCActionInterval <NSCopying>
{
    ccBezierConfig config;
    CGPoint startPosition;
}

此链接可以帮助你构建你的三次贝塞尔曲线的视觉,而不是调整值和运行应用程序。



文章来源: Cocos2d and iOS: Can't understand use of control points using ccBezierConfig