我正在制作一款俄罗斯方块类游戏,我希望我的方块能以等速度下落。我想用SpriteKit物理词重力来实现它。如何为Spritekit Gravity获得恒定速度
问题是重力一定是加速度,因此阻止他们下降时开始移动得更快。我知道我可以关闭重力并使用动作来移动块,但我希望通过重力来完成。
有没有办法让SpriteKit世界中的引力成为线性恒定速度?
我正在制作一款俄罗斯方块类游戏,我希望我的方块能以等速度下落。我想用SpriteKit物理词重力来实现它。如何为Spritekit Gravity获得恒定速度
问题是重力一定是加速度,因此阻止他们下降时开始移动得更快。我知道我可以关闭重力并使用动作来移动块,但我希望通过重力来完成。
有没有办法让SpriteKit世界中的引力成为线性恒定速度?
使用默认物理,你不会实现你正在寻找。
在重力在Spite Kit的definition很明显是一个加速度,所以是不可能达到线速度的。
向量指定在物理世界中应用于 物理体的重力加速度。
但是,你可以有一些变通办法来达到你想要的行为。
我想做到这一点的最好办法,用重力工作作为默认值,是通过限制最高速度。
2 - 限制最高速度
在didSimulatePhysics(),你可以验证对象的速度,并限制它。
像这样(贷@Andrew,在原岗位)
- (void)didSimulatePhysics {
if (node.physicsBody.velocity.x < MAX_SPEED_X) {
node.physicsBody.velocity = CGVectorMake(MAX_SPEED_X, MAX_SPEED_Y);
}
}
你想要做什么是重力设置为零,只需给每个块的方向上的速度,你希望他们去旅行。然后他们将以线性恒定速度移动。 – ColGraff