我在画一个盒子时遇到了问题。我在c ++中使用coco2d + box2d。任何人都知道如何查看box2d正在绘制的框? 如果我宣布:
b2PolygonShape bps; bps.SetAsBox(2 / SCALE_RATIO,2 / SCALE_RATIO);
当另一个物体与盒子发生碰撞时,我知道盒子的限制。但是如何在屏幕上查看box2d正在绘制的4行框?
这个话题对我有帮助吗? How to enable Box2d debug draw with Coco2d-x 3.0 beta 2
由于
答案 0 :(得分:0)
听起来可能会发生一些误解。
Box2D具有诊断绘图功能,但从概念角度忽略它。来自Box2D FAQ:
Box2D只是一个物理引擎。你如何画东西取决于你。
不要将Box2D视为“绘制”任何线条,而应将Box2D视为模拟多边形的物理特性或它们在盒子碰撞情况下的边角。从Box2D的角度来看,长度以米为单位,质量以千克为单位,以秒为单位(MKS单位)。你放置身体的地方,在概念上只是相对而言很重要。即附近或即将成为的其他尸体。是否将物体放置在例如-10的y值处高于+10处的物体然而取决于您如何渲染它们的位置以及您将重力设置为什么。您可以决定在窗口顶部渲染Box2D的y=-10
版本,在底部渲染y=+10
。
如果您不清楚Box2D物理世界与图形渲染之间的转换,那就更少关于Box2D以及更多关于识别数学变换如何工作的信息。从这个角度来看,您需要进行缩放,平移和旋转才能理解。更高级别的渲染API通常提供类似transformation matrix的内容,用于将概念点(例如从Box2D物理角度)映射到屏幕上的点。
希望这有帮助。