Swift version: 5.6
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.
SPONSORED Play is the first native iOS design tool created for designers and engineers. You can install Play for iOS and iPad today and sign up to check out the Beta of our macOS app with SwiftUI code export. We're also hiring engineers!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 7.0 – see Hacking with Swift tutorial 23
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.