【发布时间】:2019-02-22 22:01:00
【问题描述】:
我正在使用 Box2D 和 cocos2d-x,但我无法确定坐标系。
我知道 cocos2d-x 使用P(0,0) 作为屏幕的左下角。
Box2D 使用P(0, 0) 作为其世界的中心。
我正在使用 Box2D 的调试绘图。
当在 Box2D 坐标中的 P(0,0) 创建一个带有多边形形状的主体时,它会显示在屏幕的左下方。
为什么不显示在中心?
【问题讨论】:
标签: cocos2d-iphone box2d
我正在使用 Box2D 和 cocos2d-x,但我无法确定坐标系。
我知道 cocos2d-x 使用P(0,0) 作为屏幕的左下角。
Box2D 使用P(0, 0) 作为其世界的中心。
我正在使用 Box2D 的调试绘图。
当在 Box2D 坐标中的 P(0,0) 创建一个带有多边形形状的主体时,它会显示在屏幕的左下方。
为什么不显示在中心?
【问题讨论】:
标签: cocos2d-iphone box2d
定位任何b2Body 时,水平居中使用Sprite::getBoundingBox().getMidX(),垂直居中使用Sprite::getBoundingBox().getMidY()。
您可能希望将这些调用包装在 Node::convertToWorldSpace(midX, midY) 中,以确保您的中心坐标扩展到 cocos2d-x 世界坐标系,因此 Box2D 世界坐标空间必须保持一致。
【讨论】: