用 Impulse 减慢 SKSpriteNode

Slow down SKSpriteNode with Impulse

我有一个简单的游戏,在我得分后球会变得更快

ball.physicsBody?.applyImpulse(CGVector(dx: 1, dy: -1))

所以现在我想在他输了之后慢下来。我试过了:

ball.pause = 0

以及我在网上找到的许多其他代码。你能帮帮我吗?

// 抱歉,如果这不是一个高级问题,我不会在 swift.

如果你想完全停止球,你可以运行这一行:

ball.physicsBody?.velocity = CGVector(dx: 0, dy: 0)

这会将速度设置为零,有效地停止球,而不会暂停它。

如果你只想让它慢下来,你可以尝试这样做:

ball.physicsBody?.velocity = CGVector(dx: ball.physicsBody.velocity.dx - 5, dy: ball.physicsBody.velocity.dy + 5)

这使速度接近于零(为您的示例设计),而不是完全停止它。

或者,您可以在相反方向施加脉冲,这会减慢其在原始方向上的运动:

ball.physicsBody?.applyImpulse(CGVector(dx: -1, dy: 1))

请注意,如果您试图完全暂停球(不仅仅是减慢或停止它,而是暂停它的动作),您会 运行 这样做:ball.isPaused = true