我一直试图找到,但没有成功。有没有办法改变物理世界的重力属性,使物体不会被吸引到屏幕底部,而是被吸引到屏幕的中心?
使用SKFieldNode
。只需将其放置在地图的中心,并通过输入将重力设置为零的代码来禁用重力(CGVector(0,0)
)
我会给你代码,但我不使用Objective C,所以我不知道它的确切语法。不过我可以试一试... [physicsBody setGravity: CGVector(0,0)];
请注意,我不知道这是否是正确的语法
编辑:提问者请求了一个 Swift 中的 SKFieldNode 示例,所以它就在这里。对于提出的问题,您要做的是在中心创建一个Radial Gravity Field
节点。此代码位于 GameScene.swift(如果您使用的是 Objective C,则为 .m,并确保将语法更改为 Obj-C)。
let gravField = SKFieldNode.radialGravityField(); // Create grav field
gravField.position.x = size.width/2; // Center on X axis
gravField.position.y = size.height/2; // Center on Y axis (Now at center of screen)
addChild(gravField); // Add to world
您可能正在寻找 SKFieldNode。有几种不同的类型,因此您必须阅读文档。您可能正在寻找的那个叫做 radialGravityField
.