1. 程式人生 > >cocos2d-x學習筆記(9)BezierTo和BezierBy貝賽爾曲線運動

cocos2d-x學習筆記(9)BezierTo和BezierBy貝賽爾曲線運動

Bezier貝塞爾曲線,任何一條曲線都可以通過與它相切的控制線兩端的點的位置來定義。因此,貝塞爾曲線可以用4個點描述,其中兩個點描述兩個端點,另外兩個點描述每一端的切線。

Sprite* sprite=Sprite::create("sprite.png");	
	sprite->setPosition(Point(50,180));
	this->addChild(sprite,1);

	ccBezierConfig bezier;
	bezier.controlPoint_1=Point(100,0);
	bezier.controlPoint_2=Point(200,250);
	bezier.endPosition=Point(300,50);

	BezierTo* bezierTo=BezierTo::create(1.0f,bezier);

	sprite->runAction(bezierTo);

創貝塞爾曲線動作需要一個ccBezierConfig物件:

bezier.controlPoint_1:波谷偏向值;

bezier.controlPoint_2:波峰偏向值;

bezier.endPosition:動作終點。

曲線凹下去和凸起來的部分,對應是波谷和波峰,ccBezierConfig中的兩個屬性是用來設定波谷和波峰的偏向值的,而第三個屬性是用來設定動作結束時精靈所在的位置。

而BezierBy是以精靈當前位置為基準的。所以座標0不一定就是在0的位置。