Ios 如何获得Spritekit重力的恒定速度

Ios 如何获得Spritekit重力的恒定速度,ios,swift,sprite-kit,gravity,skphysicsworld,Ios,Swift,Sprite Kit,Gravity,Skphysicsworld,我正在做一个类似俄罗斯方块的游戏,我希望我的积木以恒定的速度下落。我想用SpriteKit物理术语重力来实现它 问题是重力必然是加速度,所以当物体下落时,物体开始移动得更快。我知道我可以关闭重力并使用动作移动块,但我希望使用重力 有没有办法使SpriteKit世界中的引力成为线性恒定速度?使用默认物理,您将无法实现所需的目标 在重力的作用下,尽管Kit很清楚这是一个加速度,所以不可能用它实现线速度 用于指定应用于的重力加速度的向量 物理世界中的物理实体 但是,您可以有一些变通方法来实现您想要的

我正在做一个类似俄罗斯方块的游戏,我希望我的积木以恒定的速度下落。我想用SpriteKit物理术语重力来实现它

问题是重力必然是加速度,所以当物体下落时,物体开始移动得更快。我知道我可以关闭重力并使用动作移动块,但我希望使用重力


有没有办法使SpriteKit世界中的引力成为线性恒定速度?

使用默认物理,您将无法实现所需的目标

在重力的作用下,尽管Kit很清楚这是一个加速度,所以不可能用它实现线速度

用于指定应用于的重力加速度的向量 物理世界中的物理实体


但是,您可以有一些变通方法来实现您想要的行为

  • 重力加速度为0,并增加下落物体的速度
  • 限制对象的最大速度
  • 你拥有物理学吗
  • 我认为最好的方法是,在重力作用下,限制最大速度

    2-限制最大速度

    在中,可以验证对象的速度,并对其进行限制

    像这样(归功于@Andrew,在原始帖子中)

    -(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);
     }
    }