【发布时间】:2025-11-20 15:05:02
【问题描述】:
有什么办法可以通过 spritekit 框架改变重力的默认行为?通常重力会将事物拉向屏幕底部。有没有办法让重力可以拉向不同的方向?
【问题讨论】:
-
当然,使用 scene.physicsWorld.gravity = CGPointMake(x,y) 你可以在任何方向上制作重力,其中方向取决于用于 x,y 的值
标签: ios objective-c sprite-kit
有什么办法可以通过 spritekit 框架改变重力的默认行为?通常重力会将事物拉向屏幕底部。有没有办法让重力可以拉向不同的方向?
【问题讨论】:
标签: ios objective-c sprite-kit
SpriteKit 中重力的默认值为
self.physicsWorld.gravity = CGVectorMake(0.0, -9.8); //dx = 0, dy = -9.8
这是什么让任何物体落到屏幕底部。
同样的,要让一个对象往不同的方向走,你可以在initWithSize方法中显式设置
self.physicsWorld.gravity = CGVectorMake(-9.8, 0.0); //Towards left
self.physicsWorld.gravity = CGVectorMake(9.8, 0.0); //Towards right
self.physicsWorld.gravity = CGVectorMake(0.0, 9.8); //Upwards
self.physicsWorld.gravity = CGVectorMake(9.8, 9.8); //Towards top-right corner
我希望你现在明白了。
注意:默认值为 -9.8,因为我们在现实世界中体验到的自然重力为 9.8 m/sec/sec。您可以改变这个值来改变场景中节点所经历的重力强度。
您还需要进一步了解CGVector 和SKPhysicsWorld 的gravity 属性。
【讨论】: