Swift version: 5.0
Pixel-perfect physics is just one line of code in SpriteKit. Don't believe me? Here you go:
player = SKSpriteNode(imageNamed: "player") player.position = CGPoint(x: 100, y: 384) player.physicsBody = SKPhysicsBody(texture: player.texture!, size: player.size)
That last line is the one that does the magic: SpriteKit will use the alpha values of your sprite (i.e., the transparent pixels) to figure out which parts should be part of a collision.
As you might imagine, pixel-perfect collision detection is significantly slower than using rectangles or circles, so you should use it carefully.
Available from iOS 7.0 – see Hacking with Swift tutorial 23
Did this solution work for you? Please pass it on!
Other people are reading…
About the Swift Knowledge Base
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.