在Swift 3中重置SkSpriteNode物理模拟

在Swift 3中重置SkSpriteNode物理模拟,swift,xcode,sprite-kit,skphysicsbody,Swift,Xcode,Sprite Kit,Skphysicsbody,所以我想把一个正方形从屏幕的左下角移到右上角。然而,每次这个动作发生时,正方形都会向屏幕的右侧有一点推动,并保持其先前的倾斜。。。我可以重置它的物理模拟吗 object.removeAllActions() object.position.y = frame.maxY + 50 object.position.x = frame.miX + 50 以下是如何完全重置节点的物理: object.physicsBody=SKPhysicsBody() 我总是这样做。我发现为我制作一个函数更容易,这

所以我想把一个正方形从屏幕的左下角移到右上角。然而,每次这个动作发生时,正方形都会向屏幕的右侧有一点推动,并保持其先前的倾斜。。。我可以重置它的物理模拟吗

object.removeAllActions()
object.position.y = frame.maxY + 50
object.position.x = frame.miX + 50

以下是如何完全重置节点的物理:

object.physicsBody=SKPhysicsBody()

我总是这样做。我发现为我制作一个函数更容易,这样你就不必每次重置pb时都重新配置它:

class Player: SKSpriteNode {

  func resetPB() {
    self.physicsBody = SKPhysicsBody(rectangleOf: self.size)
    self.physicsBody?.categoryBitMask = UInt(4)
    self.physicsBody?.mass = 35
    // And so on...
  }
}
或者,如果您没有使用子类:

func resetPlayerPB(_ player: SKSpriteNode) {
  player.physicsBody = SKPhysicsBody(rectangleOf: player.size)
  // And so on...
}

你能提供更多的信息吗?我不明白“正方形向屏幕右侧有一点推力”是什么意思,也不明白为什么会有倾斜,根本不明白。@天哪,是你。