每个身体使用多个固定装置时定位精灵

时间:2012-03-15 06:45:27

标签: cocos2d-iphone box2d

我将Cocos2D与Box2D一起使用,并从具有单个夹具的物体移动到具有多个灯具的物体,每个灯具都有相应的精灵。使用

body->GetTranform().p.x + shape->m_centroid.x
body->GetTranform().p.y + shape->m_centroid.y
body->GetTransform().q.GetAngle()

我可以正确定位精灵,直到身体旋转。在这一点上,一切都出错了,每个精灵都在相对于它的兄弟姐妹旋转,并且整个组围绕我认为的(0,0)身体锚点旋转。

我的猜测是Cocos2D / Box2D有一个简单的内置方法来执行必要的转换,但我还没有能够找到它。正确定位精灵的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

尝试在更新刻度函数中相对于身体中心旋转精灵。

答案 1 :(得分:0)

我终于找到了我正在寻找的转换功能。

b2Vec2 ptWorld =body->GetWorldPoint(shape->m_centroid);

将相对于身体原点测量的夹具形状坐标转换为世界坐标。从米转换为像素后,ptWorld的x和y坐标可用于设置精灵的位置。

相关问题