我正在制作一个我的英雄能够跳跃的游戏。我可以使用applyImpulse轻松完成。我遇到的问题是我希望他能够双跳,有时三跳。当他进行双跳时,有时候他真的很高。方式高于第一跳。我希望每次他做的时候他的跳跃都是平等的,我希望他以他上升的速度下降。
我正在使用它来跳跃:
[hero.physicsBody applyImpulse:CGVectorMake(0, 120)];
我没有定义很多物理世界,这可能是我的问题。我有以下几套:
self.physicsWorld.contactDelegate = self;
self.physicsWorld.gravity = CGVectorMake(0, -10.0);
我尝试过不同的重力,但结果相同。
我的英雄有以下属性:
hero.physicsBody.friction = 1.0f;
hero.physicsBody.restitution = 0.0f;
hero.physicsBody.linearDamping = 0.1f;
hero.physicsBody.allowsRotation = NO;
hero.physicsBody.mass = 0.2f;
这里有什么东西会导致我的问题吗?我缺少的东西或我应该尝试的东西?
答案 0 :(得分:4)
这就是物理学的作用。解决它的方法是在你施加第二次冲动之前重置英雄的速度。
hero.physicsBody.velocity = CGVectorMake(0, 0);
[hero.physicsBody applyImpulse:CGVectorMake(0, 120)];