BezierBy和BezierTo在Cocos2d中的区别?

时间:2012-05-17 04:18:53

标签: cocos2d-iphone cocos2d-android

我想知道BezierBy和BezierTo之间的区别。如果这是场景

,下面的代码会发生什么
     CCBezierConfig bezier = new CCBezierConfig();


     // Bezier curve  
     bezier.controlPoint_1 = CGPoint.make(1002.0f,475.0f);
     bezier.controlPoint_2 = CGPoint.make(454.0f, 281.0f);
     bezier.endPosition = CGPoint.make(-20.0f,490.0f);

     CCBezierBy by = CCBezierBy.action(100, bezier);
     CCBezierTo to = CCBezierTo.action(2, bezier);

     CCCallFuncN actionMoveDone = CCCallFuncN.action(this,"spriteMoveFinished");
     CCSequence actions = CCSequence.actions(by, actionMoveDone);

     obstacle1.runAction(actions);

在了解moveTo和moveBy

时也遇到同样的问题

请帮我解释这些概念。

1 个答案:

答案 0 :(得分:5)

CCMoveTo将您的节点移动到位置。 CCMoveBy将您的节点移动到sone像素。所有其他行动都是一样的。 示例:

CCNode *a = [[CCNode alloc] init];
[a setPosition:CGPointMake(100, 100)]; //our node starts at point (100, 100)

现在,如果你将它移动 TO CGPointMake(200,200),他的位置将是(200,200)。但如果你将它从(100,100) BY CGPointMake(200,200)移动,它将是(300,300)。