我正在建造一个空中鸟游戏,一半的水平在水面之上,另一半在水下。
如果你的鸟是在空气中,有规律的重力,当你敲打,一个冲动是直接上升。
如果你的鸟在水里,重力应该在负方向(上升)并且减少。当你敲击的时候,一种冲动就会被施加到直线下降的状态。
我能在不同的地方设置一个场景的重力吗?
我曾想过,如果鸟在水里,我可以用计时器来施加负向力,但它到处都是。
而且,我不能仅仅改变整个场景的重力,因为场景中还有其他的SKSprite物体应该对它们施加不同的重力(例如,在空中的一只鸟在拍打时应该拍打,而一只跳入水中的鸟应该同时游下去)。
发布于 2014-03-19 03:19:25
世界各地的重力都是一样的,所以你不可能有不同的重力区域。
然而,仅仅因为SpriteKit没有为某些事情提供更高层次的抽象,并不意味着它很难为自己所做。当场景的update:方法运行时,SpriteKit的恒定重力对物体做同样的事情,就好像你对它施加了相同的大小和方向的力。
所以,在你的update:方法中,你可以在场景的上下两部分做不同的重力。
applyForce:施加向上的力量。如果它在水面上,施加向下的力量。你需要调整你的力量的大小,直到它的行为正好适合你想要的游戏。当你这么做的时候,要知道applyForce:的单位是SKPhysicsWorld引力的150倍(因为可能是苹果的缺陷),并且取决于你的物理体的质量(因为牛顿的第二定律)。
发布于 2014-03-19 01:44:12
我对你如何做到这一点有一个想法:
这意味着你有两个不同重力的世界,主角的重力在一个新世界的触点之间切换(通过中间)。
祝好运
https://stackoverflow.com/questions/22493277
复制相似问题