用 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
我有一个简单的游戏,在我得分后球会变得更快
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