2011-11-06 73 views
1

在Cocos2D中,我创建了具有(0,1)锚点的CCSprites,它类似于UIKit的方式。无论如何,我正试图改变Box2D中的定位点,这可能吗? 如果是这样,我将如何做与(0,1)的锚点?更改Box2D锚点?

谢谢!

回答

4

Box2D主体没有锚点。

anchorPoint是节点纹理相对于节点位置的偏移量。 Box2D主体没有纹理,因此没有锚点。

一般来说,通过将anchorPoint从其默认的0.5,0.5位置更改,将使许多事情变得更加困难。例如,就像引发你提出这个问题的问题一样。

+0

嗯我跑了这个链接:http://www.box2d.org/forum/viewtopic.php?f=3&t=3612&p=17877#p17877 他们说这是可能的,所以在你看了那个链接之后,你认为这仍然是可能的吗? –

+0

是的,你可以偏移形状,但没有简单的属性,你必须添加这个偏移量到每个Box2D主体以匹配相应的精灵的anchorPoint偏移量。只需坚持使用cocos2d anchorPoint就好办了,而不是试图让cocos2d像UIKit一样行事。另请参阅此解释:http://stackoverflow.com/questions/7808981/moving-a-stick-figure-anchorpoints-animation-or-something-else/7810180#7810180 – LearnCocos2D

+0

我明白了。这是一个非常好的解释。所以如果我使用常规的0.5,0.5锚点,我会搞乱我的精灵的位置,因为我习惯了UIKit。有没有采取任何方式将UIKit位置坐标转换为Cocos2D坐标? –

0

改变形状的锚点身体:

for循环做一个让最小的X顶点和最大的,。减去获得的宽度,你可以在同一回路做得到最小Ÿ顶点和最大并减去,

如果您然后移动具有差异的所有顶点,您将在0,0中定位形状。

它不能确定是否最好的解决方案。