我在这里有一个排版问题,我一整天都在为这个问题绞尽脑汁。问题在于ApplyForce函数。我们无法将b2Vec2 (重力)与浮子(质量)相乘。我已经效仿了这里,有人能帮我吗?
-(void) antiGravity
{
float32 total_mass = [cannonBallBody getMass];
b2Vec2 point0 = [cannonBallBody getWorldCenter: cannonBallBody];
cannonBallBody -> ApplyForce(-1 * world -> GetGravity() * total_mass, cannonBallBody -> GetWorldCenter());
}使用b2Body*类型的CannonBallBody和
- (float) getMass{
float total_mass = 0;
for(int i=0; i<8; i++){
total_mass+= body1[i]-> GetMass();
}
return total_mass;
}
- (b2Vec2) getWorldCenter: (b2Body*)body{
return body->GetWorldCenter();
}谢谢!
发布于 2014-04-13 14:42:49
我不太明白这个问题,因为你没有说这会导致什么错误。
但我猜你只需要把浮子放在矢量前面。原因是Box2D定义了这个操作符,而不是相反的:
inline b2Vec2 operator * (float32 s, const b2Vec2& a)
{
return b2Vec2(s * a.x, s * a.y);
}https://stackoverflow.com/questions/23036801
复制相似问题