編集:質問がひどく書かれている場合は、このページの下部にあるのと同じリンクのビデオ( 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
私は2つのアプローチを試しました。スプライトの位置を設定し、設定しないことによって。
ウィキペディアスキーマ1の場合、ポイントは3つしかない ため、位置はcontrolPoint_1と同じである必要があると想定しました。
私は静かに理解していない出力を取得します..私はそれの小さなビデオを作りました、プライベートユーチューブビデオです: