我已经阅读了一些有关此问题的帖子,但他们并不是很清楚。 因此..如何找到一个夹具的宽度?我知道很热,可以访问夹具和所有这些,但不知道最后一部分。特别是,我不知道如何以最有效的方式执行此操作,如果您最好将float变量存储为body的userData。
谢谢,非常感谢!
答案 0 :(得分:0)
您可以通过两种方法完成此任务:
1)将形状附加到灯具,然后使用形状值。无需以这种方式访问宽度,因为您将是定义它的人。理想情况下,大小应该是班上的成员。
例如:
m_player->m_body->SetTransform(m_player->m_position,0.f);
b2AABB aabb;
bodyShape.ComputeAABB(&aabb,m_player->m_body->GetTransform(),0);
Center = m_player->m_body->GetFixtureList()->GetAABB(0).GetCenter();
LowerBound = m_player->m_body->GetFixtureList()->GetAABB(0).lowerBound;
HigherBound = m_player->m_body->GetFixtureList()->GetAABB(0).lowerBound;
从那时起,您可以使用您的班级成员来访问位置和大小。如果我知道场景中每个对象(玩家)应该是什么,那就是我要采用的方法。
2)如果你有一个案例但是你不想在初始化时定义大小,那么你需要在形状周围创建一个AABB,然后从那里,你可以计算大小AABB的最小和最大点。如果对象旋转,则需要计算OBB。
例如:
{{1}}
然后使用此信息计算宽度。
此信息可从Box2d文档(http://box2d.org/manual.pdf)
中找到