我正在使用C ++ Box2D库。我创建了一个实体,并向其中添加了多个方形灯具。这些方形固定装置从主体位置偏移(类似于此处的“ https://www.iforce2d.net/b2dtut/fixtures”“多个固定装置”部分中所做的操作)。
我的想法是让渲染系统遍历灯具并将其绘制到屏幕上。但是,我似乎找不到用于检索灯具的X,Y和角度的方法。步进Box2D世界时,主体的X / Y /旋转位置会发生变化,从而改变灯具的X / Y /旋转位置。
是否有一种简便的方法可以从方形灯具中提取此信息?我可以自己算术得出位置,但是,Box2D不会提供解决方案似乎很奇怪。
答案 0 :(得分:1)
固定装置没有任何位置或自行转换。
形状具有局部点(例如b2CircleShape
具有中心,b2PolygonShape
具有顶点列表)。但是,形状可以在多个固定装置/实体中重复使用。因此,让他们知道他们所连接的任何固定装置/机构都是没有意义的。
要获取形状的位置,因为它已附着在世界空间中的物体上,只需使用该物体的GetWorldPoint
方法:
body.GetWorldPoint(p);
其中p
是连接到该物体的形状的任何局部点(例如b2CircleShape
的位置或b2PolygonShape
的顶点)。
答案 1 :(得分:0)
从您描述的wat看来,您似乎需要一个工具来计算一切。我对此可能是错的,但是我在您使用的产品的文档中看到的壁橱是“ Ray Casting”和“ AABB testing”。两者在文档的World Querying部分中都有说明。