あなたは必要がありません。あなたは物理学を使用しているからといって、それは単にisDynamic = true
とisDynamic = false
とプレイヤーと床と例えばなどの他のパラメータを記述しています:
enum CollisionTypes: UInt32 {
case player1 = 1
case player2 = 2
case floor = 4
}
floor.physicsBody?.categoryBitMask = CollisionTypes.floor.rawValue
floor.physicsBody?.contactTestBitMask = CollisionTypes.player.rawValue
floor.physicsBody?.collisionBitMask = 0
player1.physicsBody?.categoryBitMask = CollisionTypes.player1.rawValue
player1.physicsBody?.contactTestBitMask = CollisionTypes.floor.rawValue
player1.physicsBody?.collisionBitMask = CollisionTypes.floor.rawValue
は、これはそれがあなたの役に立てば幸い開始するための唯一のポイントです。
実際には物理的にも接触処理としても正常に動作しています... フロアはダイナミックな偽で安定しており、プレイヤーはダイナミックな真実で動いています... しかし、これを使用するとplayer.run(SKAction.moveBy x:10、y:0、duration:0))プレイヤーは上り坂で床に移動する可能性があります。 –
予期しない動作を望まない場合は、SKAction.move..物理を使用しないでください。代わりに、applyImpulseを使用するか、スプライトの速度を変更してください。 –
良いヒント!ありがとう! –