Ios 如何获得Spritekit重力的恒定速度
我正在做一个类似俄罗斯方块的游戏,我希望我的积木以恒定的速度下落。我想用SpriteKit物理术语重力来实现它 问题是重力必然是加速度,所以当物体下落时,物体开始移动得更快。我知道我可以关闭重力并使用动作移动块,但我希望使用重力Ios 如何获得Spritekit重力的恒定速度,ios,swift,sprite-kit,gravity,skphysicsworld,Ios,Swift,Sprite Kit,Gravity,Skphysicsworld,我正在做一个类似俄罗斯方块的游戏,我希望我的积木以恒定的速度下落。我想用SpriteKit物理术语重力来实现它 问题是重力必然是加速度,所以当物体下落时,物体开始移动得更快。我知道我可以关闭重力并使用动作移动块,但我希望使用重力 有没有办法使SpriteKit世界中的引力成为线性恒定速度?使用默认物理,您将无法实现所需的目标 在重力的作用下,尽管Kit很清楚这是一个加速度,所以不可能用它实现线速度 用于指定应用于的重力加速度的向量 物理世界中的物理实体 但是,您可以有一些变通方法来实现您想要的
有没有办法使SpriteKit世界中的引力成为线性恒定速度?使用默认物理,您将无法实现所需的目标 在重力的作用下,尽管Kit很清楚这是一个加速度,所以不可能用它实现线速度 用于指定应用于的重力加速度的向量 物理世界中的物理实体
但是,您可以有一些变通方法来实现您想要的行为
-(void)模拟物理{
if(node.physicsBody.velocity.x
您要做的是将重力设置为零,并按您希望的方向为每个块提供一个速度。然后它们会以线性恒定速度移动。如果重力关闭,你给物体增加了一定的速度,为什么你需要限制最大速度?根据定义,速度将保持不变。这是3个不同的选项。。。在第二种方法中,重力是默认的,只是限制了最大速度。我明白了,有道理,我明天会尝试第二种方法,然后报告。
- (void)didSimulatePhysics {
if (node.physicsBody.velocity.x < MAX_SPEED_X) {
node.physicsBody.velocity = CGVectorMake(MAX_SPEED_X, MAX_SPEED_Y);
}
}