如何从 box2D 中的主体*获取灯具的形状点?
How to get a fixture's Shape's points from a Body* in box2D?
嘿,我正试图整合Box2D和SFML,我的类需要一个身体指针,我需要使用它来获得夹具的所有点,这样我就可以形成身体的图形表示。
我怎么得到这些点?
您可以像这样遍历body中的fixture:
for (b2Fixture* f = body->GetFixtureList(); f; f = f->GetNext())
{
....
}
一旦你有了一个夹具,你需要检查它有什么样的形状,然后转换到那个形状类型来访问形状数据:
b2Shape::Type shapeType = fixture->GetType();
if ( shapeType == b2Shape::e_circle )
{
b2CircleShape* circleShape = (b2CircleShape*)fixture->GetShape();
...
}
else if ( shapeType == b2Shape::e_polygon )
{
b2PolygonShape* polygonShape = (b2PolygonShape*)fixture->GetShape();
....
}
使用GetVertexCount()和GetVertex()从多边形形状中获取顶点。
注意,存储在夹具中的顶点位置是在实体坐标中(相对于夹具所附着的实体)。要获得世界坐标中的位置,您必须乘以body transform:
b2Vec2 worldPos = body->GetWorldPoint( localPos );
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 从C字符串中获取奇怪的字符串长度
- 为什么我的for循环不能正确获取argv
- 从python中调用C++函数并获取返回值
- 如何获取一个数字的前3位
- 获取字符串的长度并将其分配给数组
- 无法获取菜单选择以运行函数.C++
- 数组长度,为什么从命令行获取时不能使用它?
- Boost Spirit,获取迭代器内部语义动作
- 尝试通过OCI例程从Oracle获取blob数据,但出现错误:ORA-01008:并非所有变量都绑定
- 具有默认值的引用获取函数
- xmake总是报告:错误:无法获取cxx的程序,为什么
- 如何从 box2D 中的主体*获取灯具的形状点?