gpt4 book ai didi

sprite-kit - Sprite Kit 不同部分的不同重力

转载 作者:行者123 更新时间:2023-12-02 01:51:21 25 4
gpt4 key购买 nike

我正在构建一个 flappy bird 游戏,其中一半关卡在水上,另一半关卡在水下。

如果您的小鸟在空中,则存在规律的重力,当您轻敲时,会施加一个直线向上的冲量。

如果你的鸟在水中,重力应该在负方向(向上)并且更小。当您点击时,会施加一个直线向下的冲量。

我可以在不同的地方设置一个场景的重力吗?

如果鸟在水中,我想使用计时器来施加负作用力,但到处都是。

此外,我不能只改变整个场景的重力,因为场景中还有其他 SKSprite 对象应该应用不同的重力(例如,空中的一只鸟在敲击时应该向上拍打,而一只鸟当同时点击所有按钮时,潜入水中的应该是在游下去)。

最佳答案

全世界的重力都是一样的,所以你不能有不同重力的区域。

但是,仅仅因为 SpriteKit 没有为某些东西提供更高级别的抽象并不意味着它很难自己做。 SpriteKit 的恒定重力对物体的作用与每次场景的 update: 方法运行时都以相同的大小和方向对其施加力相同。

因此,您可以在update: 方法中在场景的上部和下部设置不同的重力。

  1. 检查你的鸟的 y 坐标。
  2. 如果它低于将水与空气分开的任何阈值,请使用 applyForce: 施加向上的力。如果它在水面上,请向下施加力。
  3. 因为每一帧都会发生这种情况,所以小鸟在水面上会向下加速,在水下会向上加速,您应该会在过渡之后看到一个很好的动量损失效果。

您需要调整力的大小,直到它的行为恰好适合您想要的游戏玩法。当你这样做时,请注意 applyForce: 的单位是 SKPhysicsWorld 重力的 150 倍(因为这可能是一个 Apple bug)并且取决于你的质量物理体(因为牛顿第二定律)。

关于sprite-kit - Sprite Kit 不同部分的不同重力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22493277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com