【问题标题】:Can I box gravity into an SKSpriteNode in SKSpriteKit?我可以将重力装箱到 SpriteKit 中的 SKSpriteNode 中吗?
【发布时间】:2014-05-15 14:33:58
【问题描述】:

是否可以在 SKNode 内设置重力和完整的物理特性?

我想要一个带有精灵的盒装区域,无论盒子如何变形,它都会对盒子内的重力做出反应。因此,无论盒子本身如何旋转,跳跃、坠落等都将相对于盒子的“地板”。

可能吗?如果是,如何?

谢谢, 丰富的

【问题讨论】:

  • 你会在盒子外面有受重力影响的物理物体吗?如果不是这样,只要地板的旋转发生变化,就可以将世界重力设置为地板的反法线。否则,它可以通过将世界重力设置为 0 来工作,并根据每个物体是在盒子内部还是外部对每个物体施加脉冲(也称为重力,再次沿地板的法线逆向方向)。
  • 是的,我会在其他领域有重力。这个想法类似于愤怒的小鸟星球大战——带有重力元素的关卡。当一个精灵在重力元素的范围内移动时,重力会启动并将该精灵拉向它。
  • 另外,我可以在不同时间将 self.physicsWorld.gravity = CGVectorMake(0, 0) 更改为其他值吗?例如,如果我的精灵在另一个精灵的范围内移动,我可以检查当时的世界重力矢量吗?

标签: sprite-kit game-physics gravity skspritenode


【解决方案1】:

在任何简单的一行代码中都是不可能的。一种选择是检查任何节点的坐标是否在框内并在节点上施加所需的力。您可以使用最大施加力检查将其限制在所需的水平。

【讨论】:

  • 那么对箱底旋转施加一个 90 度的脉冲?或者有没有我可以像磁铁一样设置的力属性?
  • @user2887097 - 您必须在您选择的方向上对盒子内的所有对象施加力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-17
相关资源
最近更新 更多