私はスプライトを持っています:
ombreoeuf1 = [CCSprite spriteWithFile:@"mangeurcentremieu3_03.png" ];
ombreoeuf1.position = ccp(240,160);
[self addChild:ombreoeuf1];
そして、アンカーポイントを中心に常に回転させたいと思います。どうすればいいですか?
私はスプライトを持っています:
ombreoeuf1 = [CCSprite spriteWithFile:@"mangeurcentremieu3_03.png" ];
ombreoeuf1.position = ccp(240,160);
[self addChild:ombreoeuf1];
そして、アンカーポイントを中心に常に回転させたいと思います。どうすればいいですか?
プロパティを設定することで、最初にアンカーポイントを設定できますanchorPoint
。次に例を示します。
[ombreoeuf1 setAnchorPoint:ccp(0,0)]
次に、別のプロパティを設定して回転 (度単位) を設定しますrotation
。
[ombreoeuf1 setRotation:90]
anchorPoint
とrotation
はどちらも、 CCSprite の親であるCCNode クラスのプロパティです。
アップデート
あなたのコメントによると、あなたが望むのは、決して止まることのない回転するスプライトのようですか? 以下は、スプライトを 0.1 秒ごとに 10 度回転させる例です。
[sprite runAction:[CCRepeatForever actionWithAction:[CCRotateBy actionWithDuration:0.1 angle:10]]];
CCNode サブクラスのすべての変換は、アンカー ポイントに対して相対的に行われます。すべての変換中に、アンカーポイントは同じ位置になります。たとえば、アンカーポイント (0.f, 0.f) のスプライトを画面の左下隅 (0.f, 0.f) の位置に配置する場合、そのスケールをたとえば に設定します。 5.f、変換後は左下隅にとどまり、大きくなります。したがって、すべての回転はアンカー ポイントに対して自動的に行われます。
あともう一つだけ。CCSprite にはデフォルトで anchorPoint (0.5f, 0.5f) があり、いくつかのコンテンツ サイズがあるため、変換の変更を確認するには別の値に設定する必要があります。CCNode を使用する場合は、relativeToAnchorPoint プロパティを YES に設定し、contentSize を手動で設定する必要があります。
これには CCRepeatForever アクションを使用できます。例えば、
id rotateAction = [CCRepeatForever actionWithAction:[CCRotateBy actionWithDuration: yourDuration
angle: anyAngleForGivenTime]];