在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → 3D_Apple_Games_by_Tutorials_3.0源码素材

3D_Apple_Games_by_Tutorials_3.0源码素材

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:175.77M
  • 下载次数:1
  • 浏览次数:177
  • 发布时间:2021-03-02
  • 实例类别:一般编程问题
  • 发 布 人:好学IT男
  • 文件格式:.zip
  • 所需积分:2
 

实例介绍

【实例简介】
3D_Apple_Games_by_Tutorials_3.0是由rayWinderich发布的,质量高,比较新,这里是它的配套源码和素材。
【实例截图】
【核心代码】
c2409c10-c45d-49c5-afac-81209856caec
├── __MACOSX
│   └── Source
│   ├── 01-scenes
│   │   ├── final
│   │   │   └── GeometryFighter
│   │   │   ├── GeometryFighter
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Base.lproj
│   │   │   └── GeometryFighter.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── resources
│   │   └── AppIcon
│   ├── 02-nodes
│   │   ├── challenge
│   │   │   └── GeometryFighter
│   │   │   ├── GeometryFighter
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   └── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   └── GeometryFighter.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   └── GeometryFighter
│   │   │   ├── GeometryFighter
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   └── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   └── GeometryFighter.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   ├── GeometryFighter
│   │   │   ├── GeometryFighter
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Base.lproj
│   │   │   └── GeometryFighter.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── resources
│   │   └── GeometryFighter.scnassets
│   │   ├── Sounds
│   │   └── Textures
│   ├── 03-physics
│   │   ├── final
│   │   │   └── GeometryFighter
│   │   │   ├── GeometryFighter
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   └── GeometryFighter.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Base.lproj
│   │   │   └── GeometryFighter.scnassets
│   │   │   ├── Sounds
│   │   │   └── Textures
│   │   └── GeometryFighter.xcodeproj
│   │   └── project.xcworkspace
│   ├── 04-render-loop
│   │   ├── final
│   │   │   └── GeometryFighter
│   │   │   ├── GeometryFighter
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   └── GeometryFighter.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── GameUtils
│   │   │   └── GeometryFighter.scnassets
│   │   │   ├── Sounds
│   │   │   └── Textures
│   │   └── GeometryFighter.xcodeproj
│   │   └── project.xcworkspace
│   ├── 05-particle-systems
│   │   ├── challenge
│   │   │   └── GeometryFighter
│   │   │   ├── GeometryFighter
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   └── GeometryFighter.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   └── GeometryFighter
│   │   │   ├── GeometryFighter
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   └── GeometryFighter.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── juiced
│   │   │   └── GeometryFighter
│   │   │   ├── GeometryFighter
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   └── GeometryFighter.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── GameUtils
│   │   │   └── GeometryFighter.scnassets
│   │   │   ├── Sounds
│   │   │   └── Textures
│   │   └── GeometryFighter.xcodeproj
│   │   └── project.xcworkspace
│   ├── 06-scene-editor
│   │   ├── final
│   │   │   └── Breaker
│   │   │   ├── Breaker
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Breaker.scnassets
│   │   │   │   │   ├── Scenes
│   │   │   │   │   ├── Sounds
│   │   │   │   │   └── Textures
│   │   │   │   └── GameUtils
│   │   │   └── Breaker.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── Breaker
│   │   ├── Breaker
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── Breaker.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   └── GameUtils
│   │   └── Breaker.xcodeproj
│   │   └── project.xcworkspace
│   ├── 07-cameras
│   │   ├── final
│   │   │   └── Breaker
│   │   │   ├── Breaker
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Breaker.scnassets
│   │   │   │   │   ├── Scenes
│   │   │   │   │   ├── Sounds
│   │   │   │   │   └── Textures
│   │   │   │   └── GameUtils
│   │   │   └── Breaker.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── Breaker
│   │   ├── Breaker
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── Breaker.scnassets
│   │   │   │   ├── Scenes
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   └── GameUtils
│   │   └── Breaker.xcodeproj
│   │   └── project.xcworkspace
│   ├── 08-lights
│   │   ├── final
│   │   │   └── Breaker
│   │   │   ├── Breaker
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Breaker.scnassets
│   │   │   │   │   ├── Scenes
│   │   │   │   │   ├── Sounds
│   │   │   │   │   └── Textures
│   │   │   │   └── GameUtils
│   │   │   └── Breaker.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── Breaker
│   │   ├── Breaker
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── Breaker.scnassets
│   │   │   │   ├── Scenes
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   └── GameUtils
│   │   └── Breaker.xcodeproj
│   │   └── project.xcworkspace
│   ├── 09-primitives
│   │   ├── challenge
│   │   │   └── Breaker
│   │   │   ├── Breaker
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Breaker.scnassets
│   │   │   │   │   ├── Scenes
│   │   │   │   │   ├── Sounds
│   │   │   │   │   └── Textures
│   │   │   │   └── GameUtils
│   │   │   └── Breaker.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   └── Breaker
│   │   │   ├── Breaker
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Breaker.scnassets
│   │   │   │   │   ├── Scenes
│   │   │   │   │   ├── Sounds
│   │   │   │   │   └── Textures
│   │   │   │   └── GameUtils
│   │   │   └── Breaker.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── Breaker
│   │   ├── Breaker
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── Breaker.scnassets
│   │   │   │   ├── Scenes
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   └── GameUtils
│   │   └── Breaker.xcodeproj
│   │   └── project.xcworkspace
│   ├── 10-basic-collision-detection
│   │   ├── challenge
│   │   │   └── Breaker
│   │   │   ├── Breaker
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Breaker.scnassets
│   │   │   │   │   ├── Scenes
│   │   │   │   │   ├── Sounds
│   │   │   │   │   └── Textures
│   │   │   │   └── GameUtils
│   │   │   └── Breaker.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   └── Breaker
│   │   │   ├── Breaker
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Breaker.scnassets
│   │   │   │   │   ├── Scenes
│   │   │   │   │   ├── Sounds
│   │   │   │   │   └── Textures
│   │   │   │   └── GameUtils
│   │   │   └── Breaker.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── Breaker
│   │   ├── Breaker
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── Breaker.scnassets
│   │   │   │   ├── Scenes
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   └── GameUtils
│   │   └── Breaker.xcodeproj
│   │   └── project.xcworkspace
│   ├── 11-materials
│   │   ├── final
│   │   │   └── MarbleMaze
│   │   │   ├── MarbleMaze
│   │   │   │   ├── art.scnassets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Base.lproj
│   │   │   └── MarbleMaze.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   ├── MarbleMaze
│   │   │   ├── MarbleMaze
│   │   │   │   ├── art.scnassets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Base.lproj
│   │   │   └── MarbleMaze.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── SoccerBall
│   │   ├── SoccerBall
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   ├── ball.scnassets
│   │   │   └── Base.lproj
│   │   └── SoccerBall.xcodeproj
│   │   └── project.xcworkspace
│   ├── 12-reference-nodes
│   │   ├── challenge
│   │   │   └── MarbleMaze
│   │   │   ├── MarbleMaze
│   │   │   │   ├── art.scnassets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Base.lproj
│   │   │   └── MarbleMaze.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   └── MarbleMaze
│   │   │   ├── MarbleMaze
│   │   │   │   ├── art.scnassets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Base.lproj
│   │   │   └── MarbleMaze.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── MarbleMaze
│   │   ├── MarbleMaze
│   │   │   ├── art.scnassets
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   └── Base.lproj
│   │   └── MarbleMaze.xcodeproj
│   │   └── project.xcworkspace
│   ├── 13-shadows
│   │   ├── challenge
│   │   │   └── MarbleMaze
│   │   │   ├── MarbleMaze
│   │   │   │   ├── art.scnassets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Base.lproj
│   │   │   └── MarbleMaze.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   └── MarbleMaze
│   │   │   ├── MarbleMaze
│   │   │   │   ├── art.scnassets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Base.lproj
│   │   │   └── MarbleMaze.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── MarbleMaze
│   │   ├── MarbleMaze
│   │   │   ├── art.scnassets
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   └── Base.lproj
│   │   └── MarbleMaze.xcodeproj
│   │   └── project.xcworkspace
│   ├── 14-intermediate-collision-detection
│   │   ├── challenge
│   │   │   └── MarbleMaze
│   │   │   ├── MarbleMaze
│   │   │   │   ├── art.scnassets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   ├── Base.lproj
│   │   │   │   └── GameUtils
│   │   │   └── MarbleMaze.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   └── MarbleMaze
│   │   │   ├── MarbleMaze
│   │   │   │   ├── art.scnassets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   ├── Base.lproj
│   │   │   │   └── GameUtils
│   │   │   └── MarbleMaze.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── MarbleMaze
│   │   ├── MarbleMaze
│   │   │   ├── art.scnassets
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   └── Base.lproj
│   │   └── MarbleMaze.xcodeproj
│   │   └── project.xcworkspace
│   ├── 15-motion-control
│   │   ├── final
│   │   │   └── MarbleMaze
│   │   │   ├── MarbleMaze
│   │   │   │   ├── art.scnassets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── MarbleMaze_Splash.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── Sounds
│   │   │   └── MarbleMaze.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── MarbleMaze
│   │   ├── MarbleMaze
│   │   │   ├── art.scnassets
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   ├── Base.lproj
│   │   │   └── GameUtils
│   │   └── MarbleMaze.xcodeproj
│   │   └── project.xcworkspace
│   ├── 16-macos-games
│   │   ├── final
│   │   │   └── GeometryFighter
│   │   │   ├── GeometryFighter
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   ├── GeometryFighterMac
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Base.lproj
│   │   │   └── GeometryFighter.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── GameUtils
│   │   │   └── GeometryFighter.scnassets
│   │   │   ├── Sounds
│   │   │   └── Textures
│   │   └── GeometryFighter.xcodeproj
│   │   └── project.xcworkspace
│   ├── 17-tvos-games
│   │   ├── final
│   │   │   └── Breaker
│   │   │   ├── Breaker
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Breaker.scnassets
│   │   │   │   │   ├── Scenes
│   │   │   │   │   ├── Sounds
│   │   │   │   │   └── Textures
│   │   │   │   └── GameUtils
│   │   │   ├── BreakerTV
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── App Icon & Top Shelf Image.brandassets
│   │   │   │   │   │   ├── App Icon - Large.imagestack
│   │   │   │   │   │   │   ├── Back.imagestacklayer
│   │   │   │   │   │   │   │   └── Content.imageset
│   │   │   │   │   │   │   ├── Front.imagestacklayer
│   │   │   │   │   │   │   │   └── Content.imageset
│   │   │   │   │   │   │   └── Middle.imagestacklayer
│   │   │   │   │   │   │   └── Content.imageset
│   │   │   │   │   │   ├── App Icon - Small.imagestack
│   │   │   │   │   │   │   ├── Back.imagestacklayer
│   │   │   │   │   │   │   │   └── Content.imageset
│   │   │   │   │   │   │   ├── Front.imagestacklayer
│   │   │   │   │   │   │   │   └── Content.imageset
│   │   │   │   │   │   │   └── Middle.imagestacklayer
│   │   │   │   │   │   │   └── Content.imageset
│   │   │   │   │   │   ├── Top Shelf Image.imageset
│   │   │   │   │   │   └── Top Shelf Image Wide.imageset
│   │   │   │   │   └── LaunchImage.launchimage
│   │   │   │   └── Base.lproj
│   │   │   └── Breaker.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── Breaker
│   │   ├── Breaker
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── Breaker.scnassets
│   │   │   │   ├── Scenes
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   └── GameUtils
│   │   └── Breaker.xcodeproj
│   │   └── project.xcworkspace
│   ├── 18-watchos-games
│   │   ├── final
│   │   │   └── GeometryFighter
│   │   │   ├── GeometryFighter
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   └── Textures
│   │   │   ├── GeometryFighterWatch
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Base.lproj
│   │   │   ├── GeometryFighterWatch Extension
│   │   │   │   └── Assets.xcassets
│   │   │   │   └── Complication.complicationset
│   │   │   │   ├── Circular.imageset
│   │   │   │   ├── Modular.imageset
│   │   │   │   └── Utilitarian.imageset
│   │   │   └── GeometryFighter.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── GameUtils
│   │   │   └── GeometryFighter.scnassets
│   │   │   ├── Sounds
│   │   │   └── Textures
│   │   └── GeometryFighter.xcodeproj
│   │   └── project.xcworkspace
│   ├── 19-transitions
│   │   ├── challenge
│   │   │   └── Mr.Pig
│   │   │   ├── Mr.Pig
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── MrPig.scnassets
│   │   │   │   └── Audio
│   │   │   └── Mr.Pig.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   └── Mr.Pig
│   │   │   ├── Mr.Pig
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── MrPig.scnassets
│   │   │   │   └── Audio
│   │   │   └── Mr.Pig.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── GameUtils
│   │   │   └── MrPig.scnassets
│   │   │   └── Audio
│   │   └── Mr.Pig.xcodeproj
│   │   └── project.xcworkspace
│   ├── 20-advanced-scene-creation
│   │   ├── challenge
│   │   │   └── Mr.Pig
│   │   │   ├── Mr.Pig
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── MrPig.scnassets
│   │   │   │   └── Audio
│   │   │   └── Mr.Pig.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   └── Mr.Pig
│   │   │   ├── Mr.Pig
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── MrPig.scnassets
│   │   │   │   └── Audio
│   │   │   └── Mr.Pig.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── GameUtils
│   │   │   └── MrPig.scnassets
│   │   │   └── Audio
│   │   └── Mr.Pig.xcodeproj
│   │   └── project.xcworkspace
│   ├── 21-actions
│   │   ├── challenge
│   │   │   └── Mr.Pig
│   │   │   ├── Mr.Pig
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── MrPig.scnassets
│   │   │   │   └── Audio
│   │   │   └── Mr.Pig.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   └── Mr.Pig
│   │   │   ├── Mr.Pig
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── MrPig.scnassets
│   │   │   │   └── Audio
│   │   │   └── Mr.Pig.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── GameUtils
│   │   │   └── MrPig.scnassets
│   │   │   └── Audio
│   │   └── Mr.Pig.xcodeproj
│   │   └── project.xcworkspace
│   ├── 22-advanced-collision-detection
│   │   ├── final
│   │   │   └── Mr.Pig
│   │   │   ├── Mr.Pig
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── MrPig.scnassets
│   │   │   │   └── Audio
│   │   │   └── Mr.Pig.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── GameUtils
│   │   │   └── MrPig.scnassets
│   │   │   └── Audio
│   │   └── Mr.Pig.xcodeproj
│   │   └── project.xcworkspace
│   ├── 23-audio
│   │   ├── challenge
│   │   │   └── Mr.Pig
│   │   │   ├── Mr.Pig
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── MrPig.scnassets
│   │   │   │   └── Audio
│   │   │   └── Mr.Pig.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   └── Mr.Pig
│   │   │   ├── Mr.Pig
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── GameUtils
│   │   │   │   └── MrPig.scnassets
│   │   │   │   └── Audio
│   │   │   └── Mr.Pig.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── GameUtils
│   │   │   └── MrPig.scnassets
│   │   │   └── Audio
│   │   └── Mr.Pig.xcodeproj
│   │   └── project.xcworkspace
│   └── 24-3d-art-for-programmers
│   ├── challenge
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── GameUtils
│   │   │   └── MrPig.scnassets
│   │   │   └── Audio
│   │   └── Mr.Pig.xcodeproj
│   │   └── project.xcworkspace
│   ├── final
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── GameUtils
│   │   │   └── MrPig.scnassets
│   │   │   └── Audio
│   │   └── Mr.Pig.xcodeproj
│   │   └── project.xcworkspace
│   └── starter
│   └── Mr.Pig
│   ├── Mr.Pig
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   └── MrPig_Launch.imageset
│   │   ├── Base.lproj
│   │   ├── GameUtils
│   │   └── MrPig.scnassets
│   │   └── Audio
│   └── Mr.Pig.xcodeproj
│   └── project.xcworkspace
└── Source
├── 01-scenes
│   ├── final
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   ├── AppIcon_76.png
│   │   │   │   ├── AppIcon_85_5@2x.png
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── GeometryFighter.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── resources
│   └── AppIcon
│   ├── AppIcon_60@2x.png
│   ├── AppIcon_60@3x.png
│   ├── AppIcon_76@2x.png
│   ├── AppIcon_76.png
│   ├── AppIcon_83_5@2x.png
│   └── AppIcon.afdesign
├── 02-nodes
│   ├── challenge
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   │   ├── AppIcon_76.png
│   │   │   │   │   ├── AppIcon_85_5@2x.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameViewController.swift
│   │   │   ├── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── ExplodeBad.wav
│   │   │   │   │   ├── ExplodeGood.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   ├── SpawnBad.wav
│   │   │   │   │   └── SpawnGood.wav
│   │   │   │   └── Textures
│   │   │   │   ├── Background_Diffuse.png
│   │   │   │   ├── CircleParticle.png
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── Info.plist
│   │   │   └── ShapeType.swift
│   │   └── GeometryFighter.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   │   ├── AppIcon_76.png
│   │   │   │   │   ├── AppIcon_85_5@2x.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameViewController.swift
│   │   │   ├── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── ExplodeBad.wav
│   │   │   │   │   ├── ExplodeGood.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   ├── SpawnBad.wav
│   │   │   │   │   └── SpawnGood.wav
│   │   │   │   └── Textures
│   │   │   │   ├── Background_Diffuse.png
│   │   │   │   ├── CircleParticle.png
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── Info.plist
│   │   │   └── ShapeType.swift
│   │   └── GeometryFighter.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   ├── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   ├── AppIcon_76.png
│   │   │   │   ├── AppIcon_85_5@2x.png
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── GeometryFighter.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── resources
│   └── GeometryFighter.scnassets
│   ├── Sounds
│   │   ├── ExplodeBad.wav
│   │   ├── ExplodeGood.wav
│   │   ├── GameOver.wav
│   │   ├── SpawnBad.wav
│   │   └── SpawnGood.wav
│   └── Textures
│   ├── Background_Diffuse.png
│   ├── CircleParticle.png
│   ├── GameOver_Diffuse.png
│   ├── Logo_Diffuse.png
│   └── TapToPlay_Diffuse.png
├── 03-physics
│   ├── final
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   │   ├── AppIcon_76.png
│   │   │   │   │   ├── AppIcon_83_5@2x.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── Double+Extensions.swift
│   │   │   │   ├── Float+Extensions.swift
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── Generics.swift
│   │   │   │   ├── Int+Extensions.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── UIColor+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   ├── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── ExplodeBad.wav
│   │   │   │   │   ├── ExplodeGood.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   ├── SpawnBad.wav
│   │   │   │   │   └── SpawnGood.wav
│   │   │   │   └── Textures
│   │   │   │   ├── Background_Diffuse.png
│   │   │   │   ├── CircleParticle.png
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── Info.plist
│   │   │   └── ShapeType.swift
│   │   └── GeometryFighter.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── GeometryFighter
│   ├── GeometryFighter
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   ├── AppIcon_76.png
│   │   │   │   ├── AppIcon_83_5@2x.png
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameViewController.swift
│   │   ├── GeometryFighter.scnassets
│   │   │   ├── Sounds
│   │   │   │   ├── ExplodeBad.wav
│   │   │   │   ├── ExplodeGood.wav
│   │   │   │   ├── GameOver.wav
│   │   │   │   ├── SpawnBad.wav
│   │   │   │   └── SpawnGood.wav
│   │   │   └── Textures
│   │   │   ├── Background_Diffuse.png
│   │   │   ├── CircleParticle.png
│   │   │   ├── GameOver_Diffuse.png
│   │   │   ├── Logo_Diffuse.png
│   │   │   └── TapToPlay_Diffuse.png
│   │   ├── Info.plist
│   │   └── ShapeType.swift
│   └── GeometryFighter.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 04-render-loop
│   ├── final
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   │   ├── AppIcon_76.png
│   │   │   │   │   ├── AppIcon_85_5@2x.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── Double+Extensions.swift
│   │   │   │   ├── Float+Extensions.swift
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── Generics.swift
│   │   │   │   ├── Int+Extensions.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── UIColor+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   ├── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── ExplodeBad.wav
│   │   │   │   │   ├── ExplodeGood.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   ├── SpawnBad.wav
│   │   │   │   │   └── SpawnGood.wav
│   │   │   │   └── Textures
│   │   │   │   ├── Background_Diffuse.png
│   │   │   │   ├── CircleParticle.png
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── Info.plist
│   │   │   └── ShapeType.swift
│   │   └── GeometryFighter.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── GeometryFighter
│   ├── GeometryFighter
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   ├── AppIcon_76.png
│   │   │   │   ├── AppIcon_85_5@2x.png
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameUtils
│   │   │   ├── Double+Extensions.swift
│   │   │   ├── Float+Extensions.swift
│   │   │   ├── GameHelper.swift
│   │   │   ├── Generics.swift
│   │   │   ├── Int+Extensions.swift
│   │   │   ├── SCNAction+Extensions.swift
│   │   │   └── UIColor+Extensions.swift
│   │   ├── GameViewController.swift
│   │   ├── GeometryFighter.scnassets
│   │   │   ├── Sounds
│   │   │   │   ├── ExplodeBad.wav
│   │   │   │   ├── ExplodeGood.wav
│   │   │   │   ├── GameOver.wav
│   │   │   │   ├── SpawnBad.wav
│   │   │   │   └── SpawnGood.wav
│   │   │   └── Textures
│   │   │   ├── Background_Diffuse.png
│   │   │   ├── CircleParticle.png
│   │   │   ├── GameOver_Diffuse.png
│   │   │   ├── Logo_Diffuse.png
│   │   │   └── TapToPlay_Diffuse.png
│   │   ├── Info.plist
│   │   └── ShapeType.swift
│   └── GeometryFighter.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 05-particle-systems
│   ├── challenge
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   │   ├── AppIcon_76.png
│   │   │   │   │   ├── AppIcon_83_5@2x.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Explode.scnp
│   │   │   ├── GameUtils
│   │   │   │   ├── Double+Extensions.swift
│   │   │   │   ├── Float+Extensions.swift
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── Generics.swift
│   │   │   │   ├── Int+Extensions.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── UIColor+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   ├── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── ExplodeBad.wav
│   │   │   │   │   ├── ExplodeGood.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   ├── SpawnBad.wav
│   │   │   │   │   └── SpawnGood.wav
│   │   │   │   └── Textures
│   │   │   │   ├── Background_Diffuse.png
│   │   │   │   ├── CircleParticle.png
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── Info.plist
│   │   │   ├── ShapeType.swift
│   │   │   ├── spark.png
│   │   │   └── Trail.scnp
│   │   └── GeometryFighter.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   │   ├── AppIcon_76.png
│   │   │   │   │   ├── AppIcon_83_5@2x.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── Double+Extensions.swift
│   │   │   │   ├── Float+Extensions.swift
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── Generics.swift
│   │   │   │   ├── Int+Extensions.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── UIColor+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   ├── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── ExplodeBad.wav
│   │   │   │   │   ├── ExplodeGood.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   ├── SpawnBad.wav
│   │   │   │   │   └── SpawnGood.wav
│   │   │   │   └── Textures
│   │   │   │   ├── Background_Diffuse.png
│   │   │   │   ├── CircleParticle.png
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── Info.plist
│   │   │   ├── ShapeType.swift
│   │   │   ├── spark.png
│   │   │   └── Trail.scnp
│   │   └── GeometryFighter.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── juiced
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   │   ├── AppIcon_76.png
│   │   │   │   │   ├── AppIcon_83_5@2x.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Explode.scnp
│   │   │   ├── GameUtils
│   │   │   │   ├── Double+Extensions.swift
│   │   │   │   ├── Float+Extensions.swift
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── Generics.swift
│   │   │   │   ├── Int+Extensions.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── UIColor+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   ├── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── ExplodeBad.wav
│   │   │   │   │   ├── ExplodeGood.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   ├── SpawnBad.wav
│   │   │   │   │   └── SpawnGood.wav
│   │   │   │   └── Textures
│   │   │   │   ├── Background_Diffuse.png
│   │   │   │   ├── CircleParticle.png
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── Info.plist
│   │   │   ├── ShapeType.swift
│   │   │   ├── spark.png
│   │   │   └── Trail.scnp
│   │   └── GeometryFighter.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── GeometryFighter
│   ├── GeometryFighter
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   ├── AppIcon_76.png
│   │   │   │   ├── AppIcon_83_5@2x.png
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameUtils
│   │   │   ├── Double+Extensions.swift
│   │   │   ├── Float+Extensions.swift
│   │   │   ├── GameHelper.swift
│   │   │   ├── Generics.swift
│   │   │   ├── Int+Extensions.swift
│   │   │   ├── SCNAction+Extensions.swift
│   │   │   └── UIColor+Extensions.swift
│   │   ├── GameViewController.swift
│   │   ├── GeometryFighter.scnassets
│   │   │   ├── Sounds
│   │   │   │   ├── ExplodeBad.wav
│   │   │   │   ├── ExplodeGood.wav
│   │   │   │   ├── GameOver.wav
│   │   │   │   ├── SpawnBad.wav
│   │   │   │   └── SpawnGood.wav
│   │   │   └── Textures
│   │   │   ├── Background_Diffuse.png
│   │   │   ├── CircleParticle.png
│   │   │   ├── GameOver_Diffuse.png
│   │   │   ├── Logo_Diffuse.png
│   │   │   └── TapToPlay_Diffuse.png
│   │   ├── Info.plist
│   │   └── ShapeType.swift
│   └── GeometryFighter.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 06-scene-editor
│   ├── final
│   │   └── Breaker
│   │   ├── Breaker
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── BreakerAppIcon_120x120.png
│   │   │   │   │   ├── BreakerAppIcon_152x152.png
│   │   │   │   │   ├── BreakerAppIcon_167x167.png
│   │   │   │   │   ├── BreakerAppIcon_180x180.png
│   │   │   │   │   ├── BreakerAppIcon_76x76.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Breaker.scnassets
│   │   │   │   ├── Scenes
│   │   │   │   │   └── Game.scn
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── Barrier.wav
│   │   │   │   │   ├── Block0.wav
│   │   │   │   │   ├── Block1.wav
│   │   │   │   │   ├── Block2.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   └── Paddle.wav
│   │   │   │   └── Textures
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Particle.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── SCNVector3+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── Breaker.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── Breaker
│   ├── Breaker
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── BreakerAppIcon_120x120.png
│   │   │   │   ├── BreakerAppIcon_152x152.png
│   │   │   │   ├── BreakerAppIcon_180x180.png
│   │   │   │   ├── BreakerAppIcon_76x76.png
│   │   │   │   ├── BreakerAppIcon_83_5x83_5.png
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Breaker.scnassets
│   │   │   ├── Sounds
│   │   │   │   ├── Barrier.wav
│   │   │   │   ├── Block0.wav
│   │   │   │   ├── Block1.wav
│   │   │   │   ├── Block2.wav
│   │   │   │   ├── GameOver.wav
│   │   │   │   └── Paddle.wav
│   │   │   └── Textures
│   │   │   ├── GameOver_Diffuse.png
│   │   │   ├── Particle.png
│   │   │   └── TapToPlay_Diffuse.png
│   │   ├── GameUtils
│   │   │   ├── GameHelper.swift
│   │   │   ├── GameUtils.swift
│   │   │   ├── SCNAction+Extensions.swift
│   │   │   └── SCNVector3+Extensions.swift
│   │   ├── GameViewController.swift
│   │   └── Info.plist
│   └── Breaker.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 07-cameras
│   ├── final
│   │   └── Breaker
│   │   ├── Breaker
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── BreakerAppIcon_120x120.png
│   │   │   │   │   ├── BreakerAppIcon_152x152.png
│   │   │   │   │   ├── BreakerAppIcon_167x167.png
│   │   │   │   │   ├── BreakerAppIcon_180x180.png
│   │   │   │   │   ├── BreakerAppIcon_76x76.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Breaker.scnassets
│   │   │   │   ├── Scenes
│   │   │   │   │   └── Game.scn
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── Barrier.wav
│   │   │   │   │   ├── Block0.wav
│   │   │   │   │   ├── Block1.wav
│   │   │   │   │   ├── Block2.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   └── Paddle.wav
│   │   │   │   └── Textures
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   ├── Particle.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── SCNVector3+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── Breaker.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── Breaker
│   ├── Breaker
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── BreakerAppIcon_120x120.png
│   │   │   │   ├── BreakerAppIcon_152x152.png
│   │   │   │   ├── BreakerAppIcon_167x167.png
│   │   │   │   ├── BreakerAppIcon_180x180.png
│   │   │   │   ├── BreakerAppIcon_76x76.png
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Breaker.scnassets
│   │   │   ├── Scenes
│   │   │   │   └── Game.scn
│   │   │   ├── Sounds
│   │   │   │   ├── Barrier.wav
│   │   │   │   ├── Block0.wav
│   │   │   │   ├── Block1.wav
│   │   │   │   ├── Block2.wav
│   │   │   │   ├── GameOver.wav
│   │   │   │   └── Paddle.wav
│   │   │   └── Textures
│   │   │   ├── GameOver_Diffuse.png
│   │   │   ├── Logo_Diffuse.png
│   │   │   ├── Particle.png
│   │   │   └── TapToPlay_Diffuse.png
│   │   ├── GameUtils
│   │   │   ├── GameHelper.swift
│   │   │   ├── GameUtils.swift
│   │   │   ├── SCNAction+Extensions.swift
│   │   │   └── SCNVector3+Extensions.swift
│   │   ├── GameViewController.swift
│   │   └── Info.plist
│   └── Breaker.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 08-lights
│   ├── final
│   │   └── Breaker
│   │   ├── Breaker
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── BreakerAppIcon_120x120.png
│   │   │   │   │   ├── BreakerAppIcon_152x152.png
│   │   │   │   │   ├── BreakerAppIcon_167x167.png
│   │   │   │   │   ├── BreakerAppIcon_180x180.png
│   │   │   │   │   ├── BreakerAppIcon_76x76.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Breaker.scnassets
│   │   │   │   ├── Scenes
│   │   │   │   │   └── Game.scn
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── Barrier.wav
│   │   │   │   │   ├── Block0.wav
│   │   │   │   │   ├── Block1.wav
│   │   │   │   │   ├── Block2.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   └── Paddle.wav
│   │   │   │   └── Textures
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   ├── Particle.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── SCNVector3+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── Breaker.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── Breaker
│   ├── Breaker
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── BreakerAppIcon_120x120.png
│   │   │   │   ├── BreakerAppIcon_152x152.png
│   │   │   │   ├── BreakerAppIcon_167x167.png
│   │   │   │   ├── BreakerAppIcon_180x180.png
│   │   │   │   ├── BreakerAppIcon_76x76.png
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Breaker.scnassets
│   │   │   ├── Scenes
│   │   │   │   └── Game.scn
│   │   │   ├── Sounds
│   │   │   │   ├── Barrier.wav
│   │   │   │   ├── Block0.wav
│   │   │   │   ├── Block1.wav
│   │   │   │   ├── Block2.wav
│   │   │   │   ├── GameOver.wav
│   │   │   │   └── Paddle.wav
│   │   │   └── Textures
│   │   │   ├── GameOver_Diffuse.png
│   │   │   ├── Logo_Diffuse.png
│   │   │   ├── Particle.png
│   │   │   └── TapToPlay_Diffuse.png
│   │   ├── GameUtils
│   │   │   ├── GameHelper.swift
│   │   │   ├── GameUtils.swift
│   │   │   ├── SCNAction+Extensions.swift
│   │   │   └── SCNVector3+Extensions.swift
│   │   ├── GameViewController.swift
│   │   └── Info.plist
│   └── Breaker.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 09-primitives
│   ├── challenge
│   │   └── Breaker
│   │   ├── Breaker
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── BreakerAppIcon_120x120.png
│   │   │   │   │   ├── BreakerAppIcon_152x152.png
│   │   │   │   │   ├── BreakerAppIcon_167x167.png
│   │   │   │   │   ├── BreakerAppIcon_180x180.png
│   │   │   │   │   ├── BreakerAppIcon_76x76.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Breaker.scnassets
│   │   │   │   ├── Scenes
│   │   │   │   │   └── Game.scn
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── Barrier.wav
│   │   │   │   │   ├── Block0.wav
│   │   │   │   │   ├── Block1.wav
│   │   │   │   │   ├── Block2.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   └── Paddle.wav
│   │   │   │   └── Textures
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   ├── Particle.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── SCNVector3+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── Breaker.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   └── Breaker
│   │   ├── Breaker
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── BreakerAppIcon_120x120.png
│   │   │   │   │   ├── BreakerAppIcon_152x152.png
│   │   │   │   │   ├── BreakerAppIcon_167x167.png
│   │   │   │   │   ├── BreakerAppIcon_180x180.png
│   │   │   │   │   ├── BreakerAppIcon_76x76.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Breaker.scnassets
│   │   │   │   ├── Scenes
│   │   │   │   │   └── Game.scn
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── Barrier.wav
│   │   │   │   │   ├── Block0.wav
│   │   │   │   │   ├── Block1.wav
│   │   │   │   │   ├── Block2.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   └── Paddle.wav
│   │   │   │   └── Textures
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   ├── Particle.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── SCNVector3+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── Breaker.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── Breaker
│   ├── Breaker
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── BreakerAppIcon_120x120.png
│   │   │   │   ├── BreakerAppIcon_152x152.png
│   │   │   │   ├── BreakerAppIcon_167x167.png
│   │   │   │   ├── BreakerAppIcon_180x180.png
│   │   │   │   ├── BreakerAppIcon_76x76.png
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Breaker.scnassets
│   │   │   ├── Scenes
│   │   │   │   └── Game.scn
│   │   │   ├── Sounds
│   │   │   │   ├── Barrier.wav
│   │   │   │   ├── Block0.wav
│   │   │   │   ├── Block1.wav
│   │   │   │   ├── Block2.wav
│   │   │   │   ├── GameOver.wav
│   │   │   │   └── Paddle.wav
│   │   │   └── Textures
│   │   │   ├── GameOver_Diffuse.png
│   │   │   ├── Logo_Diffuse.png
│   │   │   ├── Particle.png
│   │   │   └── TapToPlay_Diffuse.png
│   │   ├── GameUtils
│   │   │   ├── GameHelper.swift
│   │   │   ├── GameUtils.swift
│   │   │   ├── SCNAction+Extensions.swift
│   │   │   └── SCNVector3+Extensions.swift
│   │   ├── GameViewController.swift
│   │   └── Info.plist
│   └── Breaker.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 10-basic-collision-detection
│   ├── challenge
│   │   └── Breaker
│   │   ├── Breaker
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── BreakerAppIcon_120x120.png
│   │   │   │   │   ├── BreakerAppIcon_152x152.png
│   │   │   │   │   ├── BreakerAppIcon_167x167.png
│   │   │   │   │   ├── BreakerAppIcon_180x180.png
│   │   │   │   │   ├── BreakerAppIcon_76x76.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Breaker.scnassets
│   │   │   │   ├── Scenes
│   │   │   │   │   └── Game.scn
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── Barrier.wav
│   │   │   │   │   ├── Block0.wav
│   │   │   │   │   ├── Block1.wav
│   │   │   │   │   ├── Block2.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   └── Paddle.wav
│   │   │   │   └── Textures
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   ├── Particle.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── SCNVector3+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── Breaker.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   └── Breaker
│   │   ├── Breaker
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── BreakerAppIcon_120x120.png
│   │   │   │   │   ├── BreakerAppIcon_152x152.png
│   │   │   │   │   ├── BreakerAppIcon_167x167.png
│   │   │   │   │   ├── BreakerAppIcon_180x180.png
│   │   │   │   │   ├── BreakerAppIcon_76x76.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Breaker.scnassets
│   │   │   │   ├── Scenes
│   │   │   │   │   └── Game.scn
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── Barrier.wav
│   │   │   │   │   ├── Block0.wav
│   │   │   │   │   ├── Block1.wav
│   │   │   │   │   ├── Block2.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   └── Paddle.wav
│   │   │   │   └── Textures
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   ├── Particle.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── SCNVector3+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── Breaker.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── Breaker
│   ├── Breaker
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── BreakerAppIcon_120x120.png
│   │   │   │   ├── BreakerAppIcon_152x152.png
│   │   │   │   ├── BreakerAppIcon_167x167.png
│   │   │   │   ├── BreakerAppIcon_180x180.png
│   │   │   │   ├── BreakerAppIcon_76x76.png
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Breaker.scnassets
│   │   │   ├── Scenes
│   │   │   │   └── Game.scn
│   │   │   ├── Sounds
│   │   │   │   ├── Barrier.wav
│   │   │   │   ├── Block0.wav
│   │   │   │   ├── Block1.wav
│   │   │   │   ├── Block2.wav
│   │   │   │   ├── GameOver.wav
│   │   │   │   └── Paddle.wav
│   │   │   └── Textures
│   │   │   ├── GameOver_Diffuse.png
│   │   │   ├── Logo_Diffuse.png
│   │   │   ├── Particle.png
│   │   │   └── TapToPlay_Diffuse.png
│   │   ├── GameUtils
│   │   │   ├── GameHelper.swift
│   │   │   ├── GameUtils.swift
│   │   │   ├── SCNAction+Extensions.swift
│   │   │   └── SCNVector3+Extensions.swift
│   │   ├── GameViewController.swift
│   │   └── Info.plist
│   └── Breaker.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 11-materials
│   ├── final
│   │   └── MarbleMaze
│   │   ├── MarbleMaze
│   │   │   ├── AppDelegate.swift
│   │   │   ├── art.scnassets
│   │   │   │   ├── game.scn
│   │   │   │   ├── img_ball_diffuse.jpg
│   │   │   │   ├── img_ball_emission.jpg
│   │   │   │   ├── img_ball_normal.png
│   │   │   │   ├── img_crate_diffuse.jpg
│   │   │   │   ├── img_crate_normal.jpg
│   │   │   │   ├── img_pillar_diffuse.jpg
│   │   │   │   ├── img_pillar_normal.jpg
│   │   │   │   ├── img_pillar_specular.jpg
│   │   │   │   ├── img_skybox.jpg
│   │   │   │   ├── img_stone_ambient.jpg
│   │   │   │   ├── img_stone_diffuse.jpg
│   │   │   │   └── img_stone_normal.jpg
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── MarbleMaze.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   ├── MarbleMaze
│   │   ├── MarbleMaze
│   │   │   ├── AppDelegate.swift
│   │   │   ├── art.scnassets
│   │   │   │   ├── game.scn
│   │   │   │   ├── img_ball_diffuse.jpg
│   │   │   │   ├── img_ball_emission.jpg
│   │   │   │   ├── img_ball_normal.png
│   │   │   │   ├── img_crate_diffuse.jpg
│   │   │   │   ├── img_crate_normal.jpg
│   │   │   │   ├── img_pillar_diffuse.jpg
│   │   │   │   ├── img_pillar_normal.jpg
│   │   │   │   ├── img_pillar_specular.jpg
│   │   │   │   ├── img_skybox.jpg
│   │   │   │   ├── img_stone_ambient.jpg
│   │   │   │   ├── img_stone_diffuse.jpg
│   │   │   │   └── img_stone_normal.jpg
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── MarbleMaze.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── SoccerBall
│   ├── SoccerBall
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   └── AppIcon.appiconset
│   │   │   └── Contents.json
│   │   ├── ball.scnassets
│   │   │   ├── 00_Start.scn
│   │   │   ├── 01_Diffuse.scn
│   │   │   ├── 02_Normal.scn
│   │   │   ├── 03_Reflective.scn
│   │   │   ├── 04_Occlusion.scn
│   │   │   ├── 05_Specular.scn
│   │   │   ├── 06_Emission.scn
│   │   │   ├── 07_Transparency.scn
│   │   │   ├── 08_Final.scn
│   │   │   ├── 09_Final+MultiplyMap.scn
│   │   │   ├── 10_Final+Emission.scn
│   │   │   ├── 11_Final+Transparency.scn
│   │   │   ├── 12_Final+PBR.scn
│   │   │   ├── 13_MetalnessVSRoughness.scn
│   │   │   ├── 99_LightingModels.scn
│   │   │   ├── ball_diffuse.jpg
│   │   │   ├── ball_emission.jpg
│   │   │   ├── ball_environment.jpg
│   │   │   ├── ball_normal.jpg
│   │   │   ├── ball_occlusion.jpg
│   │   │   ├── ball_reflective.jpg
│   │   │   ├── ball_specular.jpg
│   │   │   └── ball_transparent.jpg
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameViewController.swift
│   │   └── Info.plist
│   └── SoccerBall.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 12-reference-nodes
│   ├── challenge
│   │   └── MarbleMaze
│   │   ├── MarbleMaze
│   │   │   ├── AppDelegate.swift
│   │   │   ├── art.scnassets
│   │   │   │   ├── game.scn
│   │   │   │   ├── img_ball_diffuse.jpg
│   │   │   │   ├── img_ball_emission.jpg
│   │   │   │   ├── img_ball_normal.png
│   │   │   │   ├── img_crate_diffuse.jpg
│   │   │   │   ├── img_crate_normal.jpg
│   │   │   │   ├── img_pillar_diffuse.jpg
│   │   │   │   ├── img_pillar_normal.jpg
│   │   │   │   ├── img_pillar_specular.jpg
│   │   │   │   ├── img_skybox.jpg
│   │   │   │   ├── img_stone_ambient.jpg
│   │   │   │   ├── img_stone_diffuse.jpg
│   │   │   │   ├── img_stone_normal.jpg
│   │   │   │   ├── obj_ball.scn
│   │   │   │   ├── obj_crate1x1.scn
│   │   │   │   ├── obj_pillar1x3.scn
│   │   │   │   ├── obj_stone1x1.scn
│   │   │   │   └── obj_stone3x3.scn
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   ├── AppIcon_120x120.png
│   │   │   │   ├── AppIcon_152x152.png
│   │   │   │   ├── AppIcon_167x167.png
│   │   │   │   ├── AppIcon_180x180.png
│   │   │   │   ├── AppIcon_76x76.png
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── MarbleMaze.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   └── MarbleMaze
│   │   ├── MarbleMaze
│   │   │   ├── AppDelegate.swift
│   │   │   ├── art.scnassets
│   │   │   │   ├── game.scn
│   │   │   │   ├── img_ball_diffuse.jpg
│   │   │   │   ├── img_ball_emission.jpg
│   │   │   │   ├── img_ball_normal.png
│   │   │   │   ├── img_crate_diffuse.jpg
│   │   │   │   ├── img_crate_normal.jpg
│   │   │   │   ├── img_pillar_diffuse.jpg
│   │   │   │   ├── img_pillar_normal.jpg
│   │   │   │   ├── img_pillar_specular.jpg
│   │   │   │   ├── img_skybox.jpg
│   │   │   │   ├── img_stone_ambient.jpg
│   │   │   │   ├── img_stone_diffuse.jpg
│   │   │   │   ├── img_stone_normal.jpg
│   │   │   │   └── obj_ball.scn
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   ├── AppIcon_120x120.png
│   │   │   │   ├── AppIcon_152x152.png
│   │   │   │   ├── AppIcon_167x167.png
│   │   │   │   ├── AppIcon_180x180.png
│   │   │   │   ├── AppIcon_76x76.png
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── MarbleMaze.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── MarbleMaze
│   ├── MarbleMaze
│   │   ├── AppDelegate.swift
│   │   ├── art.scnassets
│   │   │   ├── game.scn
│   │   │   ├── img_ball_diffuse.jpg
│   │   │   ├── img_ball_emission.jpg
│   │   │   ├── img_ball_normal.png
│   │   │   ├── img_crate_diffuse.jpg
│   │   │   ├── img_crate_normal.jpg
│   │   │   ├── img_pillar_diffuse.jpg
│   │   │   ├── img_pillar_normal.jpg
│   │   │   ├── img_pillar_specular.jpg
│   │   │   ├── img_skybox.jpg
│   │   │   ├── img_stone_ambient.jpg
│   │   │   ├── img_stone_diffuse.jpg
│   │   │   └── img_stone_normal.jpg
│   │   ├── Assets.xcassets
│   │   │   └── AppIcon.appiconset
│   │   │   └── Contents.json
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameViewController.swift
│   │   └── Info.plist
│   └── MarbleMaze.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 13-shadows
│   ├── challenge
│   │   └── MarbleMaze
│   │   ├── MarbleMaze
│   │   │   ├── AppDelegate.swift
│   │   │   ├── art.scnassets
│   │   │   │   ├── game.scn
│   │   │   │   ├── img_ball_diffuse.jpg
│   │   │   │   ├── img_ball_emission.jpg
│   │   │   │   ├── img_ball_normal.png
│   │   │   │   ├── img_crate_diffuse.jpg
│   │   │   │   ├── img_crate_normal.jpg
│   │   │   │   ├── img_pillar_diffuse.jpg
│   │   │   │   ├── img_pillar_normal.jpg
│   │   │   │   ├── img_pillar_specular.jpg
│   │   │   │   ├── img_skybox.jpg
│   │   │   │   ├── img_stone_ambient.jpg
│   │   │   │   ├── img_stone_diffuse.jpg
│   │   │   │   ├── img_stone_normal.jpg
│   │   │   │   ├── obj_ball.scn
│   │   │   │   ├── obj_crate1x1.scn
│   │   │   │   ├── obj_pillar1x3.scn
│   │   │   │   ├── obj_stone1x1.scn
│   │   │   │   ├── obj_stone3x3.scn
│   │   │   │   ├── set_restpoint.scn
│   │   │   │   ├── set_straight_bridge.scn
│   │   │   │   └── set_zigzag_bridge.scn
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   ├── AppIcon_120x120.png
│   │   │   │   ├── AppIcon_152x152.png
│   │   │   │   ├── AppIcon_167x167.png
│   │   │   │   ├── AppIcon_180x180.png
│   │   │   │   ├── AppIcon_76x76.png
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── MarbleMaze.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   └── MarbleMaze
│   │   ├── MarbleMaze
│   │   │   ├── AppDelegate.swift
│   │   │   ├── art.scnassets
│   │   │   │   ├── game.scn
│   │   │   │   ├── img_ball_diffuse.jpg
│   │   │   │   ├── img_ball_emission.jpg
│   │   │   │   ├── img_ball_normal.png
│   │   │   │   ├── img_crate_diffuse.jpg
│   │   │   │   ├── img_crate_normal.jpg
│   │   │   │   ├── img_pillar_diffuse.jpg
│   │   │   │   ├── img_pillar_normal.jpg
│   │   │   │   ├── img_pillar_specular.jpg
│   │   │   │   ├── img_skybox.jpg
│   │   │   │   ├── img_stone_ambient.jpg
│   │   │   │   ├── img_stone_diffuse.jpg
│   │   │   │   ├── img_stone_normal.jpg
│   │   │   │   ├── obj_ball.scn
│   │   │   │   ├── obj_crate1x1.scn
│   │   │   │   ├── obj_pillar1x3.scn
│   │   │   │   ├── obj_stone1x1.scn
│   │   │   │   ├── obj_stone3x3.scn
│   │   │   │   └── set_restpoint.scn
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   ├── AppIcon_120x120.png
│   │   │   │   ├── AppIcon_152x152.png
│   │   │   │   ├── AppIcon_167x167.png
│   │   │   │   ├── AppIcon_180x180.png
│   │   │   │   ├── AppIcon_76x76.png
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── MarbleMaze.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── MarbleMaze
│   ├── MarbleMaze
│   │   ├── AppDelegate.swift
│   │   ├── art.scnassets
│   │   │   ├── game.scn
│   │   │   ├── img_ball_diffuse.jpg
│   │   │   ├── img_ball_emission.jpg
│   │   │   ├── img_ball_normal.png
│   │   │   ├── img_crate_diffuse.jpg
│   │   │   ├── img_crate_normal.jpg
│   │   │   ├── img_pillar_diffuse.jpg
│   │   │   ├── img_pillar_normal.jpg
│   │   │   ├── img_pillar_specular.jpg
│   │   │   ├── img_skybox.jpg
│   │   │   ├── img_stone_ambient.jpg
│   │   │   ├── img_stone_diffuse.jpg
│   │   │   ├── img_stone_normal.jpg
│   │   │   ├── obj_ball.scn
│   │   │   ├── obj_crate1x1.scn
│   │   │   ├── obj_pillar1x3.scn
│   │   │   ├── obj_stone1x1.scn
│   │   │   └── obj_stone3x3.scn
│   │   ├── Assets.xcassets
│   │   │   └── AppIcon.appiconset
│   │   │   ├── AppIcon_120x120.png
│   │   │   ├── AppIcon_152x152.png
│   │   │   ├── AppIcon_167x167.png
│   │   │   ├── AppIcon_180x180.png
│   │   │   ├── AppIcon_76x76.png
│   │   │   └── Contents.json
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameViewController.swift
│   │   └── Info.plist
│   └── MarbleMaze.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 14-intermediate-collision-detection
│   ├── challenge
│   │   └── MarbleMaze
│   │   ├── MarbleMaze
│   │   │   ├── AppDelegate.swift
│   │   │   ├── art.scnassets
│   │   │   │   ├── game.scn
│   │   │   │   ├── img_ball_diffuse.jpg
│   │   │   │   ├── img_ball_emission.jpg
│   │   │   │   ├── img_ball_normal.png
│   │   │   │   ├── img_crate_diffuse.jpg
│   │   │   │   ├── img_crate_normal.jpg
│   │   │   │   ├── img_pillar_diffuse.jpg
│   │   │   │   ├── img_pillar_normal.jpg
│   │   │   │   ├── img_pillar_specular.jpg
│   │   │   │   ├── img_skybox.jpg
│   │   │   │   ├── img_stone_ambient.jpg
│   │   │   │   ├── img_stone_diffuse.jpg
│   │   │   │   ├── img_stone_normal.jpg
│   │   │   │   ├── obj_ball.scn
│   │   │   │   ├── obj_crate1x1.scn
│   │   │   │   ├── obj_pearl.scn
│   │   │   │   ├── obj_pillar1x3.scn
│   │   │   │   ├── obj_stone1x1.scn
│   │   │   │   ├── obj_stone3x3.scn
│   │   │   │   ├── set_restpoint.scn
│   │   │   │   ├── set_straight_bridge.scn
│   │   │   │   └── set_zigzag_bridge.scn
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   ├── AppIcon_120x120.png
│   │   │   │   ├── AppIcon_152x152.png
│   │   │   │   ├── AppIcon_167x167.png
│   │   │   │   ├── AppIcon_180x180.png
│   │   │   │   ├── AppIcon_76x76.png
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── CoreMotionHelper.swift
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── SCNVector3+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── MarbleMaze.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   └── MarbleMaze
│   │   ├── MarbleMaze
│   │   │   ├── AppDelegate.swift
│   │   │   ├── art.scnassets
│   │   │   │   ├── game.scn
│   │   │   │   ├── img_ball_diffuse.jpg
│   │   │   │   ├── img_ball_emission.jpg
│   │   │   │   ├── img_ball_normal.png
│   │   │   │   ├── img_crate_diffuse.jpg
│   │   │   │   ├── img_crate_normal.jpg
│   │   │   │   ├── img_pillar_diffuse.jpg
│   │   │   │   ├── img_pillar_normal.jpg
│   │   │   │   ├── img_pillar_specular.jpg
│   │   │   │   ├── img_skybox.jpg
│   │   │   │   ├── img_stone_ambient.jpg
│   │   │   │   ├── img_stone_diffuse.jpg
│   │   │   │   ├── img_stone_normal.jpg
│   │   │   │   ├── obj_ball.scn
│   │   │   │   ├── obj_crate1x1.scn
│   │   │   │   ├── obj_pearl.scn
│   │   │   │   ├── obj_pillar1x3.scn
│   │   │   │   ├── obj_stone1x1.scn
│   │   │   │   ├── obj_stone3x3.scn
│   │   │   │   ├── set_restpoint.scn
│   │   │   │   ├── set_straight_bridge.scn
│   │   │   │   └── set_zigzag_bridge.scn
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   ├── AppIcon_120x120.png
│   │   │   │   ├── AppIcon_152x152.png
│   │   │   │   ├── AppIcon_167x167.png
│   │   │   │   ├── AppIcon_180x180.png
│   │   │   │   ├── AppIcon_76x76.png
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── CoreMotionHelper.swift
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── SCNVector3+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   └── MarbleMaze.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── MarbleMaze
│   ├── MarbleMaze
│   │   ├── AppDelegate.swift
│   │   ├── art.scnassets
│   │   │   ├── game.scn
│   │   │   ├── img_ball_diffuse.jpg
│   │   │   ├── img_ball_emission.jpg
│   │   │   ├── img_ball_normal.png
│   │   │   ├── img_crate_diffuse.jpg
│   │   │   ├── img_crate_normal.jpg
│   │   │   ├── img_pillar_diffuse.jpg
│   │   │   ├── img_pillar_normal.jpg
│   │   │   ├── img_pillar_specular.jpg
│   │   │   ├── img_skybox.jpg
│   │   │   ├── img_stone_ambient.jpg
│   │   │   ├── img_stone_diffuse.jpg
│   │   │   ├── img_stone_normal.jpg
│   │   │   ├── obj_ball.scn
│   │   │   ├── obj_crate1x1.scn
│   │   │   ├── obj_pillar1x3.scn
│   │   │   ├── obj_stone1x1.scn
│   │   │   ├── obj_stone3x3.scn
│   │   │   ├── set_restpoint.scn
│   │   │   ├── set_straight_bridge.scn
│   │   │   └── set_zigzag_bridge.scn
│   │   ├── Assets.xcassets
│   │   │   └── AppIcon.appiconset
│   │   │   ├── AppIcon_120x120.png
│   │   │   ├── AppIcon_152x152.png
│   │   │   ├── AppIcon_167x167.png
│   │   │   ├── AppIcon_180x180.png
│   │   │   ├── AppIcon_76x76.png
│   │   │   └── Contents.json
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameViewController.swift
│   │   └── Info.plist
│   └── MarbleMaze.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 15-motion-control
│   ├── final
│   │   └── MarbleMaze
│   │   ├── MarbleMaze
│   │   │   ├── AppDelegate.swift
│   │   │   ├── art.scnassets
│   │   │   │   ├── game.scn
│   │   │   │   ├── img_ball_diffuse.jpg
│   │   │   │   ├── img_ball_emission.jpg
│   │   │   │   ├── img_ball_normal.png
│   │   │   │   ├── img_crate_diffuse.jpg
│   │   │   │   ├── img_crate_normal.jpg
│   │   │   │   ├── img_pillar_diffuse.jpg
│   │   │   │   ├── img_pillar_normal.jpg
│   │   │   │   ├── img_pillar_specular.jpg
│   │   │   │   ├── img_skybox.jpg
│   │   │   │   ├── img_stone_ambient.jpg
│   │   │   │   ├── img_stone_diffuse.jpg
│   │   │   │   ├── img_stone_normal.jpg
│   │   │   │   ├── obj_ball.scn
│   │   │   │   ├── obj_crate1x1.scn
│   │   │   │   ├── obj_pearl.scn
│   │   │   │   ├── obj_pillar1x3.scn
│   │   │   │   ├── obj_stone1x1.scn
│   │   │   │   ├── obj_stone3x3.scn
│   │   │   │   ├── set_restpoint.scn
│   │   │   │   ├── set_straight_bridge.scn
│   │   │   │   └── set_zigzag_bridge.scn
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── AppIcon_120x120.png
│   │   │   │   │   ├── AppIcon_152x152.png
│   │   │   │   │   ├── AppIcon_167x167.png
│   │   │   │   │   ├── AppIcon_180x180.png
│   │   │   │   │   ├── AppIcon_76x76.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── MarbleMaze_Splash.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── MarbleMaze_Splash.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── CoreMotionHelper.swift
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── SCNVector3+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   ├── Info.plist
│   │   │   └── Sounds
│   │   │   ├── Bump.wav
│   │   │   ├── GameOver.wav
│   │   │   ├── Powerup.wav
│   │   │   └── Reset.wav
│   │   └── MarbleMaze.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── MarbleMaze
│   ├── MarbleMaze
│   │   ├── AppDelegate.swift
│   │   ├── art.scnassets
│   │   │   ├── game.scn
│   │   │   ├── img_ball_diffuse.jpg
│   │   │   ├── img_ball_emission.jpg
│   │   │   ├── img_ball_normal.png
│   │   │   ├── img_crate_diffuse.jpg
│   │   │   ├── img_crate_normal.jpg
│   │   │   ├── img_pillar_diffuse.jpg
│   │   │   ├── img_pillar_normal.jpg
│   │   │   ├── img_pillar_specular.jpg
│   │   │   ├── img_skybox.jpg
│   │   │   ├── img_stone_ambient.jpg
│   │   │   ├── img_stone_diffuse.jpg
│   │   │   ├── img_stone_normal.jpg
│   │   │   ├── obj_ball.scn
│   │   │   ├── obj_crate1x1.scn
│   │   │   ├── obj_pearl.scn
│   │   │   ├── obj_pillar1x3.scn
│   │   │   ├── obj_stone1x1.scn
│   │   │   ├── obj_stone3x3.scn
│   │   │   ├── set_restpoint.scn
│   │   │   ├── set_straight_bridge.scn
│   │   │   └── set_zigzag_bridge.scn
│   │   ├── Assets.xcassets
│   │   │   └── AppIcon.appiconset
│   │   │   ├── AppIcon_120x120.png
│   │   │   ├── AppIcon_152x152.png
│   │   │   ├── AppIcon_167x167.png
│   │   │   ├── AppIcon_180x180.png
│   │   │   ├── AppIcon_76x76.png
│   │   │   └── Contents.json
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameUtils
│   │   │   ├── CoreMotionHelper.swift
│   │   │   ├── GameHelper.swift
│   │   │   ├── GameUtils.swift
│   │   │   ├── SCNAction+Extensions.swift
│   │   │   └── SCNVector3+Extensions.swift
│   │   ├── GameViewController.swift
│   │   └── Info.plist
│   └── MarbleMaze.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 16-macos-games
│   ├── final
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   │   ├── AppIcon_76.png
│   │   │   │   │   ├── AppIcon_83_5@2x.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Explode.scnp
│   │   │   ├── GameUtils
│   │   │   │   ├── Double+Extensions.swift
│   │   │   │   ├── Float+Extensions.swift
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── Generics.swift
│   │   │   │   ├── Int+Extensions.swift
│   │   │   │   ├── NSColor+Extension.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── UIColor+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   ├── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── ExplodeBad.wav
│   │   │   │   │   ├── ExplodeGood.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   ├── SpawnBad.wav
│   │   │   │   │   └── SpawnGood.wav
│   │   │   │   └── Textures
│   │   │   │   ├── Background_Diffuse.png
│   │   │   │   ├── CircleParticle.png
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── Info.plist
│   │   │   ├── ShapeType.swift
│   │   │   ├── spark.png
│   │   │   └── Trail.scnp
│   │   ├── GeometryFighterMac
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   ├── AppIcon_128@2x.png
│   │   │   │   ├── AppIcon_128.png
│   │   │   │   ├── AppIcon_16@2x.png
│   │   │   │   ├── AppIcon_16.png
│   │   │   │   ├── AppIcon_256@2x.png
│   │   │   │   ├── AppIcon_256.png
│   │   │   │   ├── AppIcon_32@2x.png
│   │   │   │   ├── AppIcon_32.png
│   │   │   │   ├── AppIcon_512@2x.png
│   │   │   │   ├── AppIcon_512.png
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   └── MainMenu.xib
│   │   │   ├── GameViewController.swift
│   │   │   ├── GameView.swift
│   │   │   └── Info.plist
│   │   └── GeometryFighter.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── GeometryFighter
│   ├── GeometryFighter
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   ├── AppIcon_76.png
│   │   │   │   ├── AppIcon_83_5@2x.png
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Explode.scnp
│   │   ├── GameUtils
│   │   │   ├── Double+Extensions.swift
│   │   │   ├── Float+Extensions.swift
│   │   │   ├── GameHelper.swift
│   │   │   ├── Generics.swift
│   │   │   ├── Int+Extensions.swift
│   │   │   ├── SCNAction+Extensions.swift
│   │   │   └── UIColor+Extensions.swift
│   │   ├── GameViewController.swift
│   │   ├── GeometryFighter.scnassets
│   │   │   ├── Sounds
│   │   │   │   ├── ExplodeBad.wav
│   │   │   │   ├── ExplodeGood.wav
│   │   │   │   ├── GameOver.wav
│   │   │   │   ├── SpawnBad.wav
│   │   │   │   └── SpawnGood.wav
│   │   │   └── Textures
│   │   │   ├── Background_Diffuse.png
│   │   │   ├── CircleParticle.png
│   │   │   ├── GameOver_Diffuse.png
│   │   │   ├── Logo_Diffuse.png
│   │   │   └── TapToPlay_Diffuse.png
│   │   ├── Info.plist
│   │   ├── ShapeType.swift
│   │   ├── spark.png
│   │   └── Trail.scnp
│   └── GeometryFighter.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 17-tvos-games
│   ├── final
│   │   └── Breaker
│   │   ├── Breaker
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── BreakerAppIcon_120x120.png
│   │   │   │   │   ├── BreakerAppIcon_152x152.png
│   │   │   │   │   ├── BreakerAppIcon_167x167.png
│   │   │   │   │   ├── BreakerAppIcon_180x180.png
│   │   │   │   │   ├── BreakerAppIcon_76x76.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Breaker.scnassets
│   │   │   │   ├── Scenes
│   │   │   │   │   └── Game.scn
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── Barrier.wav
│   │   │   │   │   ├── Block0.wav
│   │   │   │   │   ├── Block1.wav
│   │   │   │   │   ├── Block2.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   └── Paddle.wav
│   │   │   │   └── Textures
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   ├── Particle.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── SCNVector3+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   └── Info.plist
│   │   ├── BreakerTV
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── App Icon & Top Shelf Image.brandassets
│   │   │   │   │   ├── App Icon - Large.imagestack
│   │   │   │   │   │   ├── Back.imagestacklayer
│   │   │   │   │   │   │   ├── Content.imageset
│   │   │   │   │   │   │   │   ├── Back.png
│   │   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Front.imagestacklayer
│   │   │   │   │   │   │   ├── Content.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   └── Front.png
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   └── Middle.imagestacklayer
│   │   │   │   │   │   ├── Content.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── Middle.png
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── App Icon - Small.imagestack
│   │   │   │   │   │   ├── Back.imagestacklayer
│   │   │   │   │   │   │   ├── Content.imageset
│   │   │   │   │   │   │   │   ├── Back.png
│   │   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── Front.imagestacklayer
│   │   │   │   │   │   │   ├── Content.imageset
│   │   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   │   └── Front.png
│   │   │   │   │   │   │   └── Contents.json
│   │   │   │   │   │   └── Middle.imagestacklayer
│   │   │   │   │   │   ├── Content.imageset
│   │   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   │   └── Middle.png
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── Top Shelf Image.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   └── TopShelfImage.png
│   │   │   │   │   └── Top Shelf Image Wide.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── TopShelfImageWide.png
│   │   │   │   ├── Contents.json
│   │   │   │   └── LaunchImage.launchimage
│   │   │   │   ├── Contents.json
│   │   │   │   └── LaunchImage.png
│   │   │   ├── Base.lproj
│   │   │   │   └── Main.storyboard
│   │   │   └── Info.plist
│   │   └── Breaker.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── Breaker
│   ├── Breaker
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── BreakerAppIcon_120x120.png
│   │   │   │   ├── BreakerAppIcon_152x152.png
│   │   │   │   ├── BreakerAppIcon_167x167.png
│   │   │   │   ├── BreakerAppIcon_180x180.png
│   │   │   │   ├── BreakerAppIcon_76x76.png
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Breaker.scnassets
│   │   │   ├── Scenes
│   │   │   │   └── Game.scn
│   │   │   ├── Sounds
│   │   │   │   ├── Barrier.wav
│   │   │   │   ├── Block0.wav
│   │   │   │   ├── Block1.wav
│   │   │   │   ├── Block2.wav
│   │   │   │   ├── GameOver.wav
│   │   │   │   └── Paddle.wav
│   │   │   └── Textures
│   │   │   ├── GameOver_Diffuse.png
│   │   │   ├── Logo_Diffuse.png
│   │   │   ├── Particle.png
│   │   │   └── TapToPlay_Diffuse.png
│   │   ├── GameUtils
│   │   │   ├── GameHelper.swift
│   │   │   ├── GameUtils.swift
│   │   │   ├── SCNAction+Extensions.swift
│   │   │   └── SCNVector3+Extensions.swift
│   │   ├── GameViewController.swift
│   │   └── Info.plist
│   └── Breaker.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 18-watchos-games
│   ├── final
│   │   └── GeometryFighter
│   │   ├── GeometryFighter
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   │   ├── AppIcon_76.png
│   │   │   │   │   ├── AppIcon_83_5@2x.png
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── Logo_Diffuse.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Explode.scnp
│   │   │   ├── GameUtils
│   │   │   │   ├── Double+Extensions.swift
│   │   │   │   ├── Float+Extensions.swift
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── Generics.swift
│   │   │   │   ├── Int+Extensions.swift
│   │   │   │   ├── SCNAction+Extensions.swift
│   │   │   │   └── UIColor+Extensions.swift
│   │   │   ├── GameViewController.swift
│   │   │   ├── GeometryFighter.scnassets
│   │   │   │   ├── Sounds
│   │   │   │   │   ├── ExplodeBad.wav
│   │   │   │   │   ├── ExplodeGood.wav
│   │   │   │   │   ├── GameOver.wav
│   │   │   │   │   ├── SpawnBad.wav
│   │   │   │   │   └── SpawnGood.wav
│   │   │   │   └── Textures
│   │   │   │   ├── Background_Diffuse.png
│   │   │   │   ├── CircleParticle.png
│   │   │   │   ├── GameOver_Diffuse.png
│   │   │   │   ├── Logo_Diffuse.png
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   ├── Info.plist
│   │   │   ├── ShapeType.swift
│   │   │   ├── spark.png
│   │   │   └── Trail.scnp
│   │   ├── GeometryFighterWatch
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   ├── AppIcon_24@2x.png
│   │   │   │   ├── AppIcon_27_5@2x.png
│   │   │   │   ├── AppIcon_29@2x.png
│   │   │   │   ├── AppIcon_29@3x.png
│   │   │   │   ├── AppIcon_40@2x-1.png
│   │   │   │   ├── AppIcon_40@2x.png
│   │   │   │   ├── AppIcon_40.png
│   │   │   │   ├── AppIcon_86@2x.png
│   │   │   │   ├── AppIcon_98@2x.png
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   └── Interface.storyboard
│   │   │   └── Info.plist
│   │   ├── GeometryFighterWatch Extension
│   │   │   ├── Assets.xcassets
│   │   │   │   └── Complication.complicationset
│   │   │   │   ├── Circular.imageset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   ├── Modular.imageset
│   │   │   │   │   └── Contents.json
│   │   │   │   └── Utilitarian.imageset
│   │   │   │   └── Contents.json
│   │   │   ├── ExtensionDelegate.swift
│   │   │   ├── Info.plist
│   │   │   └── InterfaceController.swift
│   │   └── GeometryFighter.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── GeometryFighter
│   ├── GeometryFighter
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── AppIcon_60@2x.png
│   │   │   │   ├── AppIcon_60@3x.png
│   │   │   │   ├── AppIcon_76@2x.png
│   │   │   │   ├── AppIcon_76.png
│   │   │   │   ├── AppIcon_83_5@2x.png
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.imageset
│   │   │   ├── Contents.json
│   │   │   └── Logo_Diffuse.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Explode.scnp
│   │   ├── GameUtils
│   │   │   ├── Double+Extensions.swift
│   │   │   ├── Float+Extensions.swift
│   │   │   ├── GameHelper.swift
│   │   │   ├── Generics.swift
│   │   │   ├── Int+Extensions.swift
│   │   │   ├── SCNAction+Extensions.swift
│   │   │   └── UIColor+Extensions.swift
│   │   ├── GameViewController.swift
│   │   ├── GeometryFighter.scnassets
│   │   │   ├── Sounds
│   │   │   │   ├── ExplodeBad.wav
│   │   │   │   ├── ExplodeGood.wav
│   │   │   │   ├── GameOver.wav
│   │   │   │   ├── SpawnBad.wav
│   │   │   │   └── SpawnGood.wav
│   │   │   └── Textures
│   │   │   ├── Background_Diffuse.png
│   │   │   ├── CircleParticle.png
│   │   │   ├── GameOver_Diffuse.png
│   │   │   ├── Logo_Diffuse.png
│   │   │   └── TapToPlay_Diffuse.png
│   │   ├── Info.plist
│   │   ├── ShapeType.swift
│   │   ├── spark.png
│   │   └── Trail.scnp
│   └── GeometryFighter.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 19-transitions
│   ├── challenge
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   └── SCNAction+Extensions.swift
│   │   │   ├── Info.plist
│   │   │   ├── MrPig.scnassets
│   │   │   │   ├── Audio
│   │   │   │   │   ├── BankCoin.wav
│   │   │   │   │   ├── Blocked.wav
│   │   │   │   │   ├── CollectCoin.wav
│   │   │   │   │   ├── Crash.wav
│   │   │   │   │   ├── Jump.wav
│   │   │   │   │   ├── Music.mp3
│   │   │   │   │   └── Traffic.mp3
│   │   │   │   ├── Bus.scn
│   │   │   │   ├── Coin.scn
│   │   │   │   ├── GameScene.scn
│   │   │   │   ├── Gradient_Diffuse.png
│   │   │   │   ├── Grass_Diffuse.png
│   │   │   │   ├── House.scn
│   │   │   │   ├── LargeTree.scn
│   │   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   │   ├── MediumTree.scn
│   │   │   │   ├── Mini.scn
│   │   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   │   ├── MrPig.scn
│   │   │   │   ├── Rays_Diffuse.png
│   │   │   │   ├── Road_Diffuse.png
│   │   │   │   ├── Road.scn
│   │   │   │   ├── SmallTree.scn
│   │   │   │   ├── Smoke.png
│   │   │   │   ├── SplashScene.scn
│   │   │   │   ├── SUV.scn
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   └── ViewController.swift
│   │   └── Mr.Pig.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   └── SCNAction+Extensions.swift
│   │   │   ├── Info.plist
│   │   │   ├── MrPig.scnassets
│   │   │   │   ├── Audio
│   │   │   │   │   ├── BankCoin.wav
│   │   │   │   │   ├── Blocked.wav
│   │   │   │   │   ├── CollectCoin.wav
│   │   │   │   │   ├── Crash.wav
│   │   │   │   │   ├── Jump.wav
│   │   │   │   │   ├── Music.mp3
│   │   │   │   │   └── Traffic.mp3
│   │   │   │   ├── Bus.scn
│   │   │   │   ├── Coin.scn
│   │   │   │   ├── GameScene.scn
│   │   │   │   ├── Gradient_Diffuse.png
│   │   │   │   ├── Grass_Diffuse.png
│   │   │   │   ├── House.scn
│   │   │   │   ├── LargeTree.scn
│   │   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   │   ├── MediumTree.scn
│   │   │   │   ├── Mini.scn
│   │   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   │   ├── MrPig.scn
│   │   │   │   ├── Rays_Diffuse.png
│   │   │   │   ├── Road_Diffuse.png
│   │   │   │   ├── Road.scn
│   │   │   │   ├── SmallTree.scn
│   │   │   │   ├── Smoke.png
│   │   │   │   ├── SplashScene.scn
│   │   │   │   ├── SUV.scn
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   └── ViewController.swift
│   │   └── Mr.Pig.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── Mr.Pig
│   ├── Mr.Pig
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── Contents.json
│   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   ├── Contents.json
│   │   │   └── MrPig_Launch.imageset
│   │   │   ├── Contents.json
│   │   │   └── MrPig_Launch.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameUtils
│   │   │   ├── GameHelper.swift
│   │   │   ├── GameUtils.swift
│   │   │   └── SCNAction+Extensions.swift
│   │   ├── Info.plist
│   │   ├── MrPig.scnassets
│   │   │   ├── Audio
│   │   │   │   ├── BankCoin.wav
│   │   │   │   ├── Blocked.wav
│   │   │   │   ├── CollectCoin.wav
│   │   │   │   ├── Crash.wav
│   │   │   │   ├── Jump.wav
│   │   │   │   ├── Music.mp3
│   │   │   │   └── Traffic.mp3
│   │   │   ├── Bus.scn
│   │   │   ├── Coin.scn
│   │   │   ├── Gradient_Diffuse.png
│   │   │   ├── Grass_Diffuse.png
│   │   │   ├── House.scn
│   │   │   ├── LargeTree.scn
│   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   ├── MediumTree.scn
│   │   │   ├── Mini.scn
│   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   ├── MrPig.scn
│   │   │   ├── Rays_Diffuse.png
│   │   │   ├── Road_Diffuse.png
│   │   │   ├── Road.scn
│   │   │   ├── SmallTree.scn
│   │   │   ├── Smoke.png
│   │   │   ├── SUV.scn
│   │   │   └── TapToPlay_Diffuse.png
│   │   └── ViewController.swift
│   └── Mr.Pig.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 20-advanced-scene-creation
│   ├── challenge
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   └── SCNAction+Extensions.swift
│   │   │   ├── Info.plist
│   │   │   ├── MrPig.scnassets
│   │   │   │   ├── Audio
│   │   │   │   │   ├── BankCoin.wav
│   │   │   │   │   ├── Blocked.wav
│   │   │   │   │   ├── CollectCoin.wav
│   │   │   │   │   ├── Crash.wav
│   │   │   │   │   ├── Jump.wav
│   │   │   │   │   ├── Music.mp3
│   │   │   │   │   └── Traffic.mp3
│   │   │   │   ├── Bus.scn
│   │   │   │   ├── Coin.scn
│   │   │   │   ├── GameScene.scn
│   │   │   │   ├── Gradient_Diffuse.png
│   │   │   │   ├── Grass_Diffuse.png
│   │   │   │   ├── House.scn
│   │   │   │   ├── LargeTree.scn
│   │   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   │   ├── MediumTree.scn
│   │   │   │   ├── Mini.scn
│   │   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   │   ├── MrPig.scn
│   │   │   │   ├── Rays_Diffuse.png
│   │   │   │   ├── Road_Diffuse.png
│   │   │   │   ├── Road.scn
│   │   │   │   ├── SmallTree.scn
│   │   │   │   ├── Smoke.png
│   │   │   │   ├── SplashScene.scn
│   │   │   │   ├── SUV.scn
│   │   │   │   └── TapToPlay_Diffuse.png
│   │   │   └── ViewController.swift
│   │   └── Mr.Pig.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   └── SCNAction+Extensions.swift
│   │   │   ├── Info.plist
│   │   │   ├── MrPig.scnassets
│   │   │   │   ├── Audio
│   │   │   │   │   ├── BankCoin.wav
│   │   │   │   │   ├── Blocked.wav
│   │   │   │   │   ├── CollectCoin.wav
│   │   │   │   │   ├── Crash.wav
│   │   │   │   │   ├── Jump.wav
│   │   │   │   │   ├── Music.mp3
│   │   │   │   │   └── Traffic.mp3
│   │   │   │   ├── Bus.scn
│   │   │   │   ├── Coin.scn
│   │   │   │   ├── GameScene.scn
│   │   │   │   ├── Gradient_Diffuse.png
│   │   │   │   ├── Grass_Diffuse.png
│   │   │   │   ├── House.scn
│   │   │   │   ├── LargeTree.scn
│   │   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   │   ├── MediumTree.scn
│   │   │   │   ├── Mini.scn
│   │   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   │   ├── MrPig.scn
│   │   │   │   ├── Rays_Diffuse.png
│   │   │   │   ├── Road_Diffuse.png
│   │   │   │   ├── Road.scn
│   │   │   │   ├── SmallTree.scn
│   │   │   │   ├── Smoke.png
│   │   │   │   ├── SplashScene.scn
│   │   │   │   ├── SUV.scn
│   │   │   │   ├── TapToPlay_Diffuse.png
│   │   │   │   ├── TreeLine.scn
│   │   │   │   └── TreePatch.scn
│   │   │   └── ViewController.swift
│   │   └── Mr.Pig.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── Mr.Pig
│   ├── Mr.Pig
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── Contents.json
│   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   ├── Contents.json
│   │   │   └── MrPig_Launch.imageset
│   │   │   ├── Contents.json
│   │   │   └── MrPig_Launch.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameUtils
│   │   │   ├── GameHelper.swift
│   │   │   ├── GameUtils.swift
│   │   │   └── SCNAction+Extensions.swift
│   │   ├── Info.plist
│   │   ├── MrPig.scnassets
│   │   │   ├── Audio
│   │   │   │   ├── BankCoin.wav
│   │   │   │   ├── Blocked.wav
│   │   │   │   ├── CollectCoin.wav
│   │   │   │   ├── Crash.wav
│   │   │   │   ├── Jump.wav
│   │   │   │   ├── Music.mp3
│   │   │   │   └── Traffic.mp3
│   │   │   ├── Bus.scn
│   │   │   ├── Coin.scn
│   │   │   ├── GameScene.scn
│   │   │   ├── Gradient_Diffuse.png
│   │   │   ├── Grass_Diffuse.png
│   │   │   ├── House.scn
│   │   │   ├── LargeTree.scn
│   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   ├── MediumTree.scn
│   │   │   ├── Mini.scn
│   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   ├── MrPig.scn
│   │   │   ├── Rays_Diffuse.png
│   │   │   ├── Road_Diffuse.png
│   │   │   ├── Road.scn
│   │   │   ├── SmallTree.scn
│   │   │   ├── Smoke.png
│   │   │   ├── SplashScene.scn
│   │   │   ├── SUV.scn
│   │   │   └── TapToPlay_Diffuse.png
│   │   └── ViewController.swift
│   └── Mr.Pig.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 21-actions
│   ├── challenge
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   └── SCNAction+Extensions.swift
│   │   │   ├── Info.plist
│   │   │   ├── MrPig.scnassets
│   │   │   │   ├── Audio
│   │   │   │   │   ├── BankCoin.wav
│   │   │   │   │   ├── Blocked.wav
│   │   │   │   │   ├── CollectCoin.wav
│   │   │   │   │   ├── Crash.wav
│   │   │   │   │   ├── Jump.wav
│   │   │   │   │   ├── Music.mp3
│   │   │   │   │   └── Traffic.mp3
│   │   │   │   ├── Bus.scn
│   │   │   │   ├── Coin.scn
│   │   │   │   ├── GameScene.scn
│   │   │   │   ├── Gradient_Diffuse.png
│   │   │   │   ├── Grass_Diffuse.png
│   │   │   │   ├── House.scn
│   │   │   │   ├── LargeTree.scn
│   │   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   │   ├── MediumTree.scn
│   │   │   │   ├── Mini.scn
│   │   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   │   ├── MrPig.scn
│   │   │   │   ├── Rays_Diffuse.png
│   │   │   │   ├── Road_Diffuse.png
│   │   │   │   ├── Road.scn
│   │   │   │   ├── SmallTree.scn
│   │   │   │   ├── Smoke.png
│   │   │   │   ├── SplashScene.scn
│   │   │   │   ├── SUV.scn
│   │   │   │   ├── TapToPlay_Diffuse.png
│   │   │   │   ├── TreeLine.scn
│   │   │   │   └── TreePatch.scn
│   │   │   └── ViewController.swift
│   │   └── Mr.Pig.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   └── SCNAction+Extensions.swift
│   │   │   ├── Info.plist
│   │   │   ├── MrPig.scnassets
│   │   │   │   ├── Audio
│   │   │   │   │   ├── BankCoin.wav
│   │   │   │   │   ├── Blocked.wav
│   │   │   │   │   ├── CollectCoin.wav
│   │   │   │   │   ├── Crash.wav
│   │   │   │   │   ├── Jump.wav
│   │   │   │   │   ├── Music.mp3
│   │   │   │   │   └── Traffic.mp3
│   │   │   │   ├── Bus.scn
│   │   │   │   ├── Coin.scn
│   │   │   │   ├── GameScene.scn
│   │   │   │   ├── Gradient_Diffuse.png
│   │   │   │   ├── Grass_Diffuse.png
│   │   │   │   ├── House.scn
│   │   │   │   ├── LargeTree.scn
│   │   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   │   ├── MediumTree.scn
│   │   │   │   ├── Mini.scn
│   │   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   │   ├── MrPig.scn
│   │   │   │   ├── Rays_Diffuse.png
│   │   │   │   ├── Road_Diffuse.png
│   │   │   │   ├── Road.scn
│   │   │   │   ├── SmallTree.scn
│   │   │   │   ├── Smoke.png
│   │   │   │   ├── SplashScene.scn
│   │   │   │   ├── SUV.scn
│   │   │   │   ├── TapToPlay_Diffuse.png
│   │   │   │   ├── TreeLine.scn
│   │   │   │   └── TreePatch.scn
│   │   │   └── ViewController.swift
│   │   └── Mr.Pig.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── Mr.Pig
│   ├── Mr.Pig
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── Contents.json
│   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   ├── Contents.json
│   │   │   └── MrPig_Launch.imageset
│   │   │   ├── Contents.json
│   │   │   └── MrPig_Launch.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameUtils
│   │   │   ├── GameHelper.swift
│   │   │   ├── GameUtils.swift
│   │   │   └── SCNAction+Extensions.swift
│   │   ├── Info.plist
│   │   ├── MrPig.scnassets
│   │   │   ├── Audio
│   │   │   │   ├── BankCoin.wav
│   │   │   │   ├── Blocked.wav
│   │   │   │   ├── CollectCoin.wav
│   │   │   │   ├── Crash.wav
│   │   │   │   ├── Jump.wav
│   │   │   │   ├── Music.mp3
│   │   │   │   └── Traffic.mp3
│   │   │   ├── Bus.scn
│   │   │   ├── Coin.scn
│   │   │   ├── GameScene.scn
│   │   │   ├── Gradient_Diffuse.png
│   │   │   ├── Grass_Diffuse.png
│   │   │   ├── House.scn
│   │   │   ├── LargeTree.scn
│   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   ├── MediumTree.scn
│   │   │   ├── Mini.scn
│   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   ├── MrPig.scn
│   │   │   ├── Rays_Diffuse.png
│   │   │   ├── Road_Diffuse.png
│   │   │   ├── Road.scn
│   │   │   ├── SmallTree.scn
│   │   │   ├── Smoke.png
│   │   │   ├── SplashScene.scn
│   │   │   ├── SUV.scn
│   │   │   ├── TapToPlay_Diffuse.png
│   │   │   ├── TreeLine.scn
│   │   │   └── TreePatch.scn
│   │   └── ViewController.swift
│   └── Mr.Pig.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 22-advanced-collision-detection
│   ├── final
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   └── SCNAction+Extensions.swift
│   │   │   ├── Info.plist
│   │   │   ├── MrPig.scnassets
│   │   │   │   ├── Audio
│   │   │   │   │   ├── BankCoin.wav
│   │   │   │   │   ├── Blocked.wav
│   │   │   │   │   ├── CollectCoin.wav
│   │   │   │   │   ├── Crash.wav
│   │   │   │   │   ├── Jump.wav
│   │   │   │   │   ├── Music.mp3
│   │   │   │   │   └── Traffic.mp3
│   │   │   │   ├── Bus.scn
│   │   │   │   ├── Coin.scn
│   │   │   │   ├── Collision.scn
│   │   │   │   ├── GameScene.scn
│   │   │   │   ├── Gradient_Diffuse.png
│   │   │   │   ├── Grass_Diffuse.png
│   │   │   │   ├── Home.scn
│   │   │   │   ├── House.scn
│   │   │   │   ├── LargeTree.scn
│   │   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   │   ├── MediumTree.scn
│   │   │   │   ├── Mini.scn
│   │   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   │   ├── MrPig.scn
│   │   │   │   ├── Rays_Diffuse.png
│   │   │   │   ├── Road_Diffuse.png
│   │   │   │   ├── Road.scn
│   │   │   │   ├── SmallTree.scn
│   │   │   │   ├── Smoke.png
│   │   │   │   ├── SplashScene.scn
│   │   │   │   ├── SUV.scn
│   │   │   │   ├── TapToPlay_Diffuse.png
│   │   │   │   ├── TreeLine.scn
│   │   │   │   └── TreePatch.scn
│   │   │   └── ViewController.swift
│   │   └── Mr.Pig.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── Mr.Pig
│   ├── Mr.Pig
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── Contents.json
│   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   ├── Contents.json
│   │   │   └── MrPig_Launch.imageset
│   │   │   ├── Contents.json
│   │   │   └── MrPig_Launch.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameUtils
│   │   │   ├── GameHelper.swift
│   │   │   ├── GameUtils.swift
│   │   │   └── SCNAction+Extensions.swift
│   │   ├── Info.plist
│   │   ├── MrPig.scnassets
│   │   │   ├── Audio
│   │   │   │   ├── BankCoin.wav
│   │   │   │   ├── Blocked.wav
│   │   │   │   ├── CollectCoin.wav
│   │   │   │   ├── Crash.wav
│   │   │   │   ├── Jump.wav
│   │   │   │   ├── Music.mp3
│   │   │   │   └── Traffic.mp3
│   │   │   ├── Bus.scn
│   │   │   ├── Coin.scn
│   │   │   ├── GameScene.scn
│   │   │   ├── Gradient_Diffuse.png
│   │   │   ├── Grass_Diffuse.png
│   │   │   ├── House.scn
│   │   │   ├── LargeTree.scn
│   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   ├── MediumTree.scn
│   │   │   ├── Mini.scn
│   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   ├── MrPig.scn
│   │   │   ├── Rays_Diffuse.png
│   │   │   ├── Road_Diffuse.png
│   │   │   ├── Road.scn
│   │   │   ├── SmallTree.scn
│   │   │   ├── Smoke.png
│   │   │   ├── SplashScene.scn
│   │   │   ├── SUV.scn
│   │   │   ├── TapToPlay_Diffuse.png
│   │   │   ├── TreeLine.scn
│   │   │   └── TreePatch.scn
│   │   └── ViewController.swift
│   └── Mr.Pig.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 23-audio
│   ├── challenge
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   └── SCNAction+Extensions.swift
│   │   │   ├── Info.plist
│   │   │   ├── MrPig.scnassets
│   │   │   │   ├── Audio
│   │   │   │   │   ├── BankCoin.wav
│   │   │   │   │   ├── Blocked.wav
│   │   │   │   │   ├── CollectCoin.wav
│   │   │   │   │   ├── Crash.wav
│   │   │   │   │   ├── Jump.wav
│   │   │   │   │   ├── Music.mp3
│   │   │   │   │   └── Traffic.mp3
│   │   │   │   ├── Bus.scn
│   │   │   │   ├── Coin.scn
│   │   │   │   ├── Collision.scn
│   │   │   │   ├── GameScene.scn
│   │   │   │   ├── Gradient_Diffuse.png
│   │   │   │   ├── Grass_Diffuse.png
│   │   │   │   ├── Home.scn
│   │   │   │   ├── House.scn
│   │   │   │   ├── LargeTree.scn
│   │   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   │   ├── MediumTree.scn
│   │   │   │   ├── Mini.scn
│   │   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   │   ├── MrPig.scn
│   │   │   │   ├── Rays_Diffuse.png
│   │   │   │   ├── Road_Diffuse.png
│   │   │   │   ├── Road.scn
│   │   │   │   ├── SmallTree.scn
│   │   │   │   ├── Smoke.png
│   │   │   │   ├── SplashScene.scn
│   │   │   │   ├── SUV.scn
│   │   │   │   ├── TapToPlay_Diffuse.png
│   │   │   │   ├── TreeLine.scn
│   │   │   │   └── TreePatch.scn
│   │   │   └── ViewController.swift
│   │   └── Mr.Pig.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   └── Mr.Pig
│   │   ├── Mr.Pig
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── MrPig_Launch.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GameUtils
│   │   │   │   ├── GameHelper.swift
│   │   │   │   ├── GameUtils.swift
│   │   │   │   └── SCNAction+Extensions.swift
│   │   │   ├── Info.plist
│   │   │   ├── MrPig.scnassets
│   │   │   │   ├── Audio
│   │   │   │   │   ├── BankCoin.wav
│   │   │   │   │   ├── Blocked.wav
│   │   │   │   │   ├── CollectCoin.wav
│   │   │   │   │   ├── Crash.wav
│   │   │   │   │   ├── Jump.wav
│   │   │   │   │   ├── Music.mp3
│   │   │   │   │   └── Traffic.mp3
│   │   │   │   ├── Bus.scn
│   │   │   │   ├── Coin.scn
│   │   │   │   ├── Collision.scn
│   │   │   │   ├── GameScene.scn
│   │   │   │   ├── Gradient_Diffuse.png
│   │   │   │   ├── Grass_Diffuse.png
│   │   │   │   ├── Home.scn
│   │   │   │   ├── House.scn
│   │   │   │   ├── LargeTree.scn
│   │   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   │   ├── MediumTree.scn
│   │   │   │   ├── Mini.scn
│   │   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   │   ├── MrPig.scn
│   │   │   │   ├── Rays_Diffuse.png
│   │   │   │   ├── Road_Diffuse.png
│   │   │   │   ├── Road.scn
│   │   │   │   ├── SmallTree.scn
│   │   │   │   ├── Smoke.png
│   │   │   │   ├── SplashScene.scn
│   │   │   │   ├── SUV.scn
│   │   │   │   ├── TapToPlay_Diffuse.png
│   │   │   │   ├── TreeLine.scn
│   │   │   │   └── TreePatch.scn
│   │   │   └── ViewController.swift
│   │   └── Mr.Pig.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── Mr.Pig
│   ├── Mr.Pig
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── Contents.json
│   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   ├── Contents.json
│   │   │   └── MrPig_Launch.imageset
│   │   │   ├── Contents.json
│   │   │   └── MrPig_Launch.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameUtils
│   │   │   ├── GameHelper.swift
│   │   │   ├── GameUtils.swift
│   │   │   └── SCNAction+Extensions.swift
│   │   ├── Info.plist
│   │   ├── MrPig.scnassets
│   │   │   ├── Audio
│   │   │   │   ├── BankCoin.wav
│   │   │   │   ├── Blocked.wav
│   │   │   │   ├── CollectCoin.wav
│   │   │   │   ├── Crash.wav
│   │   │   │   ├── Jump.wav
│   │   │   │   ├── Music.mp3
│   │   │   │   └── Traffic.mp3
│   │   │   ├── Bus.scn
│   │   │   ├── Coin.scn
│   │   │   ├── Collision.scn
│   │   │   ├── GameScene.scn
│   │   │   ├── Gradient_Diffuse.png
│   │   │   ├── Grass_Diffuse.png
│   │   │   ├── Home.scn
│   │   │   ├── House.scn
│   │   │   ├── LargeTree.scn
│   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   ├── MediumTree.scn
│   │   │   ├── Mini.scn
│   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   ├── MrPig.scn
│   │   │   ├── Rays_Diffuse.png
│   │   │   ├── Road_Diffuse.png
│   │   │   ├── Road.scn
│   │   │   ├── SmallTree.scn
│   │   │   ├── Smoke.png
│   │   │   ├── SplashScene.scn
│   │   │   ├── SUV.scn
│   │   │   ├── TapToPlay_Diffuse.png
│   │   │   ├── TreeLine.scn
│   │   │   └── TreePatch.scn
│   │   └── ViewController.swift
│   └── Mr.Pig.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
└── 24-3d-art-for-programmers
├── challenge
│   └── Mr.Pig
│   ├── Mr.Pig
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── Contents.json
│   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   ├── Contents.json
│   │   │   └── MrPig_Launch.imageset
│   │   │   ├── Contents.json
│   │   │   └── MrPig_Launch.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameUtils
│   │   │   ├── GameHelper.swift
│   │   │   ├── GameUtils.swift
│   │   │   └── SCNAction+Extensions.swift
│   │   ├── Info.plist
│   │   ├── MrPig.scnassets
│   │   │   ├── Audio
│   │   │   │   ├── BankCoin.wav
│   │   │   │   ├── Blocked.wav
│   │   │   │   ├── CollectCoin.wav
│   │   │   │   ├── Crash.wav
│   │   │   │   ├── Jump.wav
│   │   │   │   ├── Music.mp3
│   │   │   │   └── Traffic.mp3
│   │   │   ├── Bus.scn
│   │   │   ├── Coin.scn
│   │   │   ├── Collision.scn
│   │   │   ├── GameScene.scn
│   │   │   ├── Gradient_Diffuse.png
│   │   │   ├── Grass_Diffuse.png
│   │   │   ├── Home.scn
│   │   │   ├── House.scn
│   │   │   ├── LargeTree.scn
│   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   ├── MediumTree.scn
│   │   │   ├── Mini.scn
│   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   ├── MrPig.scn
│   │   │   ├── MrWolf.png
│   │   │   ├── MrWolf.scn
│   │   │   ├── Rays_Diffuse.png
│   │   │   ├── Road_Diffuse.png
│   │   │   ├── Road.scn
│   │   │   ├── SmallTree.scn
│   │   │   ├── Smoke.png
│   │   │   ├── SplashScene.scn
│   │   │   ├── SUV.scn
│   │   │   ├── TapToPlay_Diffuse.png
│   │   │   ├── TreeLine.scn
│   │   │   └── TreePatch.scn
│   │   └── ViewController.swift
│   └── Mr.Pig.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── final
│   └── Mr.Pig
│   ├── Mr.Pig
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── Contents.json
│   │   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   │   └── MrPig_AppIcon_76x76.png
│   │   │   ├── Contents.json
│   │   │   └── MrPig_Launch.imageset
│   │   │   ├── Contents.json
│   │   │   └── MrPig_Launch.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GameUtils
│   │   │   ├── GameHelper.swift
│   │   │   ├── GameUtils.swift
│   │   │   └── SCNAction+Extensions.swift
│   │   ├── Info.plist
│   │   ├── MrPig.scnassets
│   │   │   ├── Audio
│   │   │   │   ├── BankCoin.wav
│   │   │   │   ├── Blocked.wav
│   │   │   │   ├── CollectCoin.wav
│   │   │   │   ├── Crash.wav
│   │   │   │   ├── Jump.wav
│   │   │   │   ├── Music.mp3
│   │   │   │   └── Traffic.mp3
│   │   │   ├── Bus.scn
│   │   │   ├── Coin.scn
│   │   │   ├── Collision.scn
│   │   │   ├── GameScene.scn
│   │   │   ├── Gradient_Diffuse.png
│   │   │   ├── Grass_Diffuse.png
│   │   │   ├── Home.scn
│   │   │   ├── House.scn
│   │   │   ├── LargeTree.scn
│   │   │   ├── MagicaVoxel_Diffuse.png
│   │   │   ├── MediumTree.scn
│   │   │   ├── Mini.scn
│   │   │   ├── MrPigLogo_Diffuse.png
│   │   │   ├── MrPig.scn
│   │   │   ├── MrWolf.png
│   │   │   ├── MrWolf.scn
│   │   │   ├── Rays_Diffuse.png
│   │   │   ├── Road_Diffuse.png
│   │   │   ├── Road.scn
│   │   │   ├── SmallTree.scn
│   │   │   ├── Smoke.png
│   │   │   ├── SplashScene.scn
│   │   │   ├── SUV.scn
│   │   │   ├── TapToPlay_Diffuse.png
│   │   │   ├── TreeLine.scn
│   │   │   └── TreePatch.scn
│   │   └── ViewController.swift
│   └── Mr.Pig.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
└── starter
└── Mr.Pig
├── Mr.Pig
│   ├── AppDelegate.swift
│   ├── Assets.xcassets
│   │   ├── AppIcon.appiconset
│   │   │   ├── Contents.json
│   │   │   ├── MrPig_AppIcon_120x120.png
│   │   │   ├── MrPig_AppIcon_152x152.png
│   │   │   ├── MrPig_AppIcon_167x167.png
│   │   │   ├── MrPig_AppIcon_180x180.png
│   │   │   └── MrPig_AppIcon_76x76.png
│   │   ├── Contents.json
│   │   └── MrPig_Launch.imageset
│   │   ├── Contents.json
│   │   └── MrPig_Launch.png
│   ├── Base.lproj
│   │   ├── LaunchScreen.storyboard
│   │   └── Main.storyboard
│   ├── GameUtils
│   │   ├── GameHelper.swift
│   │   ├── GameUtils.swift
│   │   └── SCNAction+Extensions.swift
│   ├── Info.plist
│   ├── MrPig.scnassets
│   │   ├── Audio
│   │   │   ├── BankCoin.wav
│   │   │   ├── Blocked.wav
│   │   │   ├── CollectCoin.wav
│   │   │   ├── Crash.wav
│   │   │   ├── Jump.wav
│   │   │   ├── Music.mp3
│   │   │   └── Traffic.mp3
│   │   ├── Bus.scn
│   │   ├── Coin.scn
│   │   ├── Collision.scn
│   │   ├── GameScene.scn
│   │   ├── Gradient_Diffuse.png
│   │   ├── Grass_Diffuse.png
│   │   ├── Home.scn
│   │   ├── House.scn
│   │   ├── LargeTree.scn
│   │   ├── MagicaVoxel_Diffuse.png
│   │   ├── MediumTree.scn
│   │   ├── Mini.scn
│   │   ├── MrPigLogo_Diffuse.png
│   │   ├── MrPig.scn
│   │   ├── Rays_Diffuse.png
│   │   ├── Road_Diffuse.png
│   │   ├── Road.scn
│   │   ├── SmallTree.scn
│   │   ├── Smoke.png
│   │   ├── SplashScene.scn
│   │   ├── SUV.scn
│   │   ├── TapToPlay_Diffuse.png
│   │   ├── TreeLine.scn
│   │   └── TreePatch.scn
│   └── ViewController.swift
└── Mr.Pig.xcodeproj
├── project.pbxproj
└── project.xcworkspace
└── contents.xcworkspacedata

1585 directories, 2287 files

标签:

实例下载地址

3D_Apple_Games_by_Tutorials_3.0源码素材

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警