【发布时间】:2012-03-15 06:45:27
【问题描述】:
我将 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 有一个简单的内置方法来执行必要的转换,但我无法找到它的文档。正确定位我的精灵的最佳方法是什么?
【问题讨论】:
-
您使用的是弧度还是度数? GetAngle 为您提供弧度。
-
是的,我忽略了代码示例中的米->像素和弧度->度转换。正如我所提到的,我已经使用单夹具主体完成了这项工作。问题是 b2PolygonShape 的 m_centroid 没有被转换。我期望找到类似 shape->getTransform() 的东西,但它不存在。然而,我终于找到了我需要的东西。请参阅下面的解决方案。
标签: cocos2d-iphone box2d