我一直试图找到,但没有成功。有没有办法以这种方式改变物理世界的重力属性,物体不会被吸引到屏幕的底部,而是被吸引到它的中心?
答案 0 :(得分:4)
使用SKFieldNode
。只需将它放在地图的中心并通过放置代码来禁用重力,将重力设置为零(CGVector(0,0)
)
我会给你代码,但我不使用Objective C,所以我不知道它的确切语法。我可以试一试...... [physicsBody setGravity: CGVector(0,0)];
请注意我没有想法,如果这是正确的语法
编辑:
提问者在Swift中请求了SKFieldNode的一个例子,所以在这里。
对于提出的问题,您要做的是在中心创建一个Radial Gravity Field
节点。这段代码放在GameScene.swift(或.m,如果你使用的是Objective C,并确保你将语法改为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
答案 1 :(得分:3)
您可能正在寻找SKFieldNode。有几种不同的类型,所以你必须阅读文档。您可能正在寻找的那个称为radialGravityField
。