我的精灵如何跳回到原来的位置??我在iphone应用程序中使用box2d物理引擎。我一时冲动,但不能正常工作。
有人知道其中的逻辑或代码吗?
-(void)jump
{
b2Vec2 pos=ballbody->GetPosition();
// float vel=ballbody->GetAngularVelocity();
double radian=atan2(pos.x+10, pos.y+10);
float angle=CC_RADIANS_TO_DEGREES(radian);
NSLog(@"Angle: %f",angle);
float impulseFactor = 1.0;
float force=ballbody->GetMass()*10;
//force/=6.0;
//b2Vec2 force=b2Vec2(0,50.0f);
// float apply=force*JUMP_IMPULSE*impulseFactor;
ballbody->ApplyLinearImpulse(b2Vec2(angle,force), ballbody->GetWorldCenter());
// [self applyLinearImpulse:b2Vec2(0,[self mass]*JUMP_IMPULSE*impulseFactor) point:[self worldCenter]];
}
感谢
- 请检查是否设置了重力
- 如果没有将重力设定在特定的角度上,你就施加了力
- 第三种情况是记下那个位置。。。获取当前位置。。。获取角度。。。。将线速度设置为该角度。。。。继续检查位置,一旦到达该位置,设置线速度为零。。。。。(这听起来很困惑,但我并没有完全理解你的问题,尽管我理解了,但我只能帮这么多)