 <p>Can I have a second please...</p> <blockquote> <p>WTTTTFFFFFFF</p> </blockquote> <p>ok now that I got that out, the problem was that I declared the <code>physicsBody</code> AFTER setting the <code>categoryBitMask</code>. so switching this:</p> <pre><code>override func didMoveToView(view: SKView) { physicsWorld.contactDelegate = self physicsBody?.categoryBitMask = PhysicsCategory.Scene physicsBody?.contactTestBitMask = PhysicsCategory.Player physicsWorld.gravity = CGVectorMake(0, -2) physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)//this line moves up physicsBody?.usesPreciseCollisionDetection = true setUpPlayer() } </code></pre> <p>to this:</p> <pre><code>override func didMoveToView(view: SKView) { physicsWorld.contactDelegate = self physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)//to here physicsBody?.categoryBitMask = PhysicsCategory.Scene physicsBody?.contactTestBitMask = PhysicsCategory.Player physicsWorld.gravity = CGVectorMake(0, -2) physicsBody?.usesPreciseCollisionDetection = true setUpPlayer() } </code></pre> <p>fixed this issue...</p>