ibrews/apple-platform-skills/spritekit-ios
Claude Code and agent skill by ibrews/apple-platform-skills
Trust tier 3
- community
Source check pending
Checking that the SKILL.md file is still in the repository.
SpriteKit 2D game development for iOS and visionOS. Use when building games with scenes, sprites, physics, tile maps, or particle systems using Apple's SpriteKit framework.
Install
npx vskill@latest install ibrews/apple-platform-skills/spritekit-iosSKILL.md
SpriteKit iOS Game Development
Scene Graph & Coordinate System
- Y-up coordinate system — origin (0,0) at bottom-left by default
SKScene.anchorPointdefaults to (0.5, 0.5) — center of screenzPositioncontrols draw order — higher = in front; siblings draw in add order if equal- Every node inherits parent's transform — build hierarchy intentionally
Physics
Actions
Texture Atlases & Animation
Atlases batch all sprites into one draw call — always use them for animated sprites in production.
SKTileMapNode
Game Loop — What Goes Where
| Method | Use for | |
|---|---|---|
update(_ currentTime:) | Input handling, AI decisions, manual velocity changes | |
didEvaluateActions() | State checks after actions complete (e.g., did animation finish?) | |
didSimulatePhysics() | Camera follow, enforcing constraints after physics step |
Performance
- Node count targets: < 500 for 60 fps on older devices; < 1500 on modern hardware
- Debug overlay:
view.showsFPS = true; view.showsNodeCount = true; view.showsDrawCount = true - Prefer
SKSpriteNodeoverSKShapeNode— shape nodes regenerate geometry every frame - Avoid
SKEffectNodeunless you need blur/filters — triggers expensive offscreen render pass - Pool and reuse frequently spawned nodes (bullets, particles) instead of add/remove
Common Pitfalls
| Pitfall | Fix | |
|---|---|---|
presentScene crash | Must be called on main thread | |
| Physics bitmask > bit 31 | UInt32 overflow → crash; cap at 32 categories | |
removeFromParent() off main thread | All node graph operations: main thread only | |
| Memory leak on scene transition | Nil out delegate refs; use view.presentScene(_:transition:) | |
| anchorPoint confusion | Set explicitly; docs show (0,0) examples but default SKScene is (0.5, 0.5) | |
| Contact firing twice | Both didBegin and didEnd fire per pair — guard with a "contacted" flag if needed |
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingspritekit-ios/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ibrews/apple-platform-skills/spritekit-ios)