0

アンカーポイントとスケーリングに関するすべてをほぼすべて読みました。スプライトの位置をスケーリングすると、スプライトの位置で何が起こっているのかまだわかりません。

シナリオは次のとおりです。

画面をタップすると、スプライトの幅が約 50% 減少し、高さがほぼ同じスケールで増加します。その後、通常のスケールに戻ります。

id scaleUpAction =  [CCEaseInOut actionWithAction:[CCScaleTo actionWithDuration:.35 scaleX:0.5 scaleY:1.5] rate:1.0];
id scaleDownAction = [CCEaseInOut actionWithAction:[CCScaleTo actionWithDuration:.35 scaleX:1.0 scaleY:1.0] rate:1.0];
CCSequence *scaleSeq = [CCSequence actions:scaleUpAction, scaleDownAction, nil];
[self.boxShape runAction:scaleSeq];

スケーリングによってスプライトが「動く」ようになる理由がわかりません。

画面上の位置 (100, 100) にサイズ 40x60 のスプライトがある場合、縮小すると左に移動します。なんで?

ありがとう。

4

2 に答える 2

0

一般に、空間をスケーリングすると、その場所に残る点が常に 1 つだけあり、他の点は移動します。CCNode の場合、このポイントはアンカー ポイントです。固定したいノード上のポイントを選択し、アンカーポイントにします

于 2013-03-14T13:35:19.330 に答える
0

画像のアンカー ポイントが図の重心にない可能性があります。次の図では、約 ccp (0.85, 0.5) の赤い点でアンカー ポイントを設定する必要があります。

画像: アンカー ポイント、月、重心

アンカー ポイントが中央 (0.5、0.5) にある場合、前の図を水平方向にスケーリングすると、左に移動します (視覚的にのみ!)。

これはあなたの問題ですか?

于 2013-03-15T12:05:54.280 に答える