2017-06-07 8 views
1

だから、画面の左下から右上に四角形を移動したいと思います。しかし、このアクションが起こるたびに、スクエアは画面の右側に少し押し込まれ、以前の傾きが残っています...物理シミュレーションをリセットすることはできますか?Swift 3でSkSpriteNode物理シミュレーションをリセットする

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

もう少し情報を提供できますか?私は、「スクエアがスクリーンの右側に少し押し込まれている」という意味、またなぜチルトが関与しているのかを理解できません。 – Confused

+0

@Confused聖なるくそそれはあなたです。 – Fluidity

答えて

1

はここで完全にノードの物理学をリセットする方法は次のとおりです。

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... 
} 
関連する問題