0

actionMoveを記述するときの Cocos2d -x チュートリアルのサンプル

CCFiniteTimeAction* actionMove = 
CCMoveTo::create( (float)actualDuration, 
ccp(0 - target->getContentSize().width/2, actualY) );

ポイント ccp(0 - target->getContentSize().width/2, actualY) を設定します。幅が 20 のターゲットがある場合、ポイント (-10、実際の Y) があり、半分のターゲットが表示されている必要がありますが、そうではありません。なんで?

初期目標位置

target->setPosition( 
  ccp(winSize.width + (target->getContentSize().width/2), 
  actualY) );

ここでも 2 で割りますが、それは理解できます (winSize.width + 任意の数値で、ターゲットが画面の外で見えなくなります)。

4

1 に答える 1

0

Cocos2d-xは、オブジェクトの角ではなく、中心を原点/アンカーポイントとして使用します。したがって、オブジェクトの半分を画面の端に表示する場合は、次を使用します。

ccp(0, actualY)

また

ccp(winSize.width)

オブジェクトを完全に画面から外したい場合は、contentSizeの半分を追加します。

于 2013-01-09T01:11:36.767 に答える