SpriteKit-如何制作苹果电脑总是一样的力量



我正在开发一款英雄可以跳跃的游戏。我可以用AppleImpulse很容易地做到这一点。我的问题是我希望他能跳两下,有时能跳三下。当他做双人跳时,有时他会跳得很高。比第一跳高很多。我希望他每次跳得都一样,我希望他以和上跳一样的速度往下跳。

我用这个跳跃:

[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;

这里有什么东西会引起我的问题吗?我错过了什么,还是我应该试试?

这就是物理学的工作原理。绕过它的方法是在你施加第二个脉冲之前重置英雄的速度。

hero.physicsBody.velocity = CGVectorMake(0, 0);
[hero.physicsBody applyImpulse:CGVectorMake(0, 120)];

最新更新