【问题标题】:Is there a way to make gravity come from a different part of the screen using spriteKit有没有办法使用 spriteKit 使重力来自屏幕的不同部分
【发布时间】:2025-11-20 15:05:02
【问题描述】:

有什么办法可以通过 spritekit 框架改变重力的默认行为?通常重力会将事物拉向屏幕底部。有没有办法让重力可以拉向不同的方向?

【问题讨论】:

  • 当然,使用 scene.physicsWorld.gravity = CGPointMake(x,y) 你可以在任何方向上制作重力,其中方向取决于用于 x,y 的值

标签: ios objective-c sprite-kit


【解决方案1】:

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。您可以改变这个值来改变场景中节点所经历的重力强度。

您还需要进一步了解CGVectorSKPhysicsWorldgravity 属性。

【讨论】:

    最近更新 更多