如何为 Spritekit Gravity 获取恒定速度
How to get Constant Velocity for Spritekit Gravity
我正在制作一种俄罗斯方块类型的游戏,我希望我的方块以恒定的速度下落。我想使用 SpriteKit Physics Words Gravity 来实现它。
问题是重力必然是加速度,因此方块在下落时开始移动得更快。我知道我可以关闭重力并使用动作来移动方块,但我希望通过重力来完成。
有没有办法让SpriteKit世界中的重力成为线性恒速?
使用默认物理无法实现您想要的效果。
在 Spite Kit 的 Gravity 中 definition 很明显是一个加速度,所以不可能用它来实现线速度。
A vector that specifies the gravitational acceleration applied to
physics bodies in the physics world.
但是,您可以通过一些变通方法来实现您想要的行为。
- 重力加速度0,增加物体下落速度
- 限制对象的最大速度。
- 你有物理学吗
我认为最好的方法是限制最大速度。
2 - 限制最大速度
Consulting this post.
在didSimulatePhysics()中,您可以验证物体的速度,并限制它。
像这样(致谢 @Andrew,原文 post)
- (void)didSimulatePhysics {
if (node.physicsBody.velocity.x < MAX_SPEED_X) {
node.physicsBody.velocity = CGVectorMake(MAX_SPEED_X, MAX_SPEED_Y);
}
}
我正在制作一种俄罗斯方块类型的游戏,我希望我的方块以恒定的速度下落。我想使用 SpriteKit Physics Words Gravity 来实现它。
问题是重力必然是加速度,因此方块在下落时开始移动得更快。我知道我可以关闭重力并使用动作来移动方块,但我希望通过重力来完成。
有没有办法让SpriteKit世界中的重力成为线性恒速?
使用默认物理无法实现您想要的效果。
在 Spite Kit 的 Gravity 中 definition 很明显是一个加速度,所以不可能用它来实现线速度。
A vector that specifies the gravitational acceleration applied to physics bodies in the physics world.
但是,您可以通过一些变通方法来实现您想要的行为。
- 重力加速度0,增加物体下落速度
- 限制对象的最大速度。
- 你有物理学吗
我认为最好的方法是限制最大速度。
2 - 限制最大速度
Consulting this post.
在didSimulatePhysics()中,您可以验证物体的速度,并限制它。
像这样(致谢 @Andrew,原文 post)
- (void)didSimulatePhysics {
if (node.physicsBody.velocity.x < MAX_SPEED_X) {
node.physicsBody.velocity = CGVectorMake(MAX_SPEED_X, MAX_SPEED_Y);
}
}