cocos2d-x學習筆記(9)BezierTo和BezierBy貝賽爾曲線運動
阿新 • • 發佈:2019-02-12
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的位置。