0

Cocos2d-x 教程中我们描述 actionMove的示例中

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

我们设置一个点 ccp(0 - target->getContentSize().width/2, actualY)。如果我们有宽度为 20 的目标,那么我们有点 (-10, actualY),并且一半的目标必须是可见的,但事实并非如此。为什么?

初始目标位置

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 回答