我正在建造一个飞扬的鸟类游戏,其中一半的水位在水面之上,另一半在水下。
如果你的鸟儿在空中,有规律的重力,当你点击时,会直接施加冲动。
如果你的鸟在水中,重力应该是负方向(向上)并且更少。点击时,会直接施加冲动。
我可以在不同的地方设置场景的重力吗?
如果鸟儿在水中,我想过用一个计时器来施加负力,但它已经遍布整个地方。
此外,我不能只改变整个场景的重力,因为场景中还有其他SKSprite对象应该有不同的重力(例如,空中的一只鸟应该在敲击时拍打,还有一只鸟在同时拍摄时,潜入水中的鸽子应该游泳。)
答案 0 :(得分:2)
重力在全世界都是一样的,所以你不能拥有不同重力的区域。
然而,仅仅因为SpriteKit并没有为某些东西提供更高级别的抽象,并不意味着它很难为自己做。 SpriteKit的恒定引力对于一个物体做同样的事情,就好像每次你的场景update:
方法运行时对它施加相同大小和方向的力。
因此,您可以在update:
方法中在场景的上部和下部执行不同的重力。
applyForce:
施加向上的力。如果它高于水面,则施加向下的力。 你需要调整你的力量,直到它的行为适合你想要的游戏。当你这样做时,请注意applyForce:
的单位是SKPhysicsWorld
重力的150倍(因为它可能是一个苹果虫),并取决于你的质量物理机构(因为牛顿第二定律)。
答案 1 :(得分:0)
我知道如何做到这一点:
这意味着你有两个具有不同重力的世界,一个主要角色的重力在新世界的接触中切换(穿过中间)
祝你好运