【发布时间】:2017-02-21 23:47:25
【问题描述】:
我正在尝试制作一款游戏,您可以通过左右移动平台来控制平台,同时尝试平衡平台上的坠落物体。然而,平台的移动似乎独立于落在它上面的物品。例如,如果一个块落在我的平台顶部,当我向左或向右移动平台时,块保持不动,只有平台在它下面移动。这使得无法堆叠任何东西,因为块不随平台移动。我不确定我需要使用哪些 SpriteKit 物理属性来模拟平衡。当块与平台碰撞时,我尝试调整恢复弹性,并尝试调整摩擦属性以查看是否有助于块“粘”在平台上,但这似乎也无济于事。
我的平台不是动态的,所以我尝试设置
platform.physicsBody!.isDynamic = true
platform.physicsBody!.affectedByGravity = false
platform.physicsBody!.allowsRotation = false
这似乎有帮助?但是当它与我不能拥有的块碰撞时,平台仍然会移动。
编辑:
这就是我移动平台的方式。用户通过用手指拖动来移动平台父级。由于这会移动平台父级,因此平台也会随之移动。
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
if let touch = touches.first {
let location = touch.locationInNode(self)
platformParent.position.x = location.x
}
}
【问题讨论】:
-
试试这个——一旦落下的方块最终落定,让它成为平台的孩子。然后它应该与平台一起移动,但仍会受到其他块落在平台顶部的影响。或者,如果它固定在平台上时被“卡住”,请使用 SKPhysicsJoint 将其固定到位。
标签: swift sprite-kit skphysicsbody