【发布时间】:2018-01-23 14:42:52
【问题描述】:
我有一个 swift 的 SceneKit 游戏,其中我有一辆带有动态物理车身的汽车,其设置如下:
let carScene = SCNScene(named: "art.scnassets/truck.scn")!
let carNode = carScene.rootNode.childNode(withName: "Cube", recursively: true)!
let carPhysicsBody = SCNPhysicsBody(type: .dynamic,shape: SCNPhysicsShape(geometry: SCNBox(width: 5.343, height: 12.125, length: 4.373, chamferRadius: 0)))
carPhysicsBody.mass = 3
carPhysicsBody.friction = 2
carPhysicsBody.contactTestBitMask = 1
carNode.physicsBody = carPhysicsBody
carNode.position = SCNVector3(x: 0, y: 0, z: 5)
carNode.physicsBody?.applyForce(SCNVector3(x: 0, y: 50, z: 0), asImpulse: true)
car = carNode
floorScene.rootNode.addChildNode(car)
地板的物理结构如下所示:
如您所见,汽车被发射到空中。然后场景中的重力使它下落,而不是与地板相撞,而是直接穿过它。
重力是这样的:
我应该改变什么让它与地板发生碰撞?
【问题讨论】:
标签: swift collision-detection game-physics scenekit