实例介绍
2D Apple Games by Tutorials_Code 源码 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
【实例截图】
【核心代码】
26e221eb-55bf-4bf3-85e7-da7277047fc4
├── __MACOSX
│ └── Source
│ ├── 01-sprites
│ │ ├── challenge1
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ └── Base.lproj
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── challenge2
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ └── Base.lproj
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── final
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ └── Base.lproj
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ └── resources
│ │ ├── icons
│ │ └── images
│ ├── 02-manual-movement
│ │ ├── challenge1
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ └── Base.lproj
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── challenge2
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ └── Base.lproj
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── challenge3
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ └── Base.lproj
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── final
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ └── Base.lproj
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── background1.imageset
│ │ │ │ ├── background2.imageset
│ │ │ │ ├── cat.imageset
│ │ │ │ ├── enemy.imageset
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ ├── YouLose.imageset
│ │ │ │ ├── YouWin.imageset
│ │ │ │ ├── zombie1.imageset
│ │ │ │ ├── zombie2.imageset
│ │ │ │ ├── zombie3.imageset
│ │ │ │ └── zombie4.imageset
│ │ │ └── Base.lproj
│ │ └── ZombieConga.xcodeproj
│ │ └── project.xcworkspace
│ ├── 03-actions
│ │ ├── challenge1
│ │ │ ├── ActionsCatalog
│ │ │ │ ├── ActionsCatalog
│ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ │ ├── cat.imageset
│ │ │ │ │ │ ├── dog.imageset
│ │ │ │ │ │ └── turtle.imageset
│ │ │ │ │ └── Base.lproj
│ │ │ │ └── ActionsCatalog.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Sounds
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── challenge2
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Sounds
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── challenge3
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Sounds
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── final
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Sounds
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ ├── resources
│ │ │ └── Sounds
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── background1.imageset
│ │ │ │ ├── background2.imageset
│ │ │ │ ├── cat.imageset
│ │ │ │ ├── enemy.imageset
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ ├── YouLose.imageset
│ │ │ │ ├── YouWin.imageset
│ │ │ │ ├── zombie1.imageset
│ │ │ │ ├── zombie2.imageset
│ │ │ │ ├── zombie3.imageset
│ │ │ │ └── zombie4.imageset
│ │ │ └── Base.lproj
│ │ └── ZombieConga.xcodeproj
│ │ └── project.xcworkspace
│ ├── 04-scenes
│ │ ├── challenge
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Sounds
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── final
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Sounds
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── background1.imageset
│ │ │ │ ├── background2.imageset
│ │ │ │ ├── cat.imageset
│ │ │ │ ├── enemy.imageset
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ ├── YouLose.imageset
│ │ │ │ ├── YouWin.imageset
│ │ │ │ ├── zombie1.imageset
│ │ │ │ ├── zombie2.imageset
│ │ │ │ ├── zombie3.imageset
│ │ │ │ └── zombie4.imageset
│ │ │ ├── Base.lproj
│ │ │ └── Sounds
│ │ └── ZombieConga.xcodeproj
│ │ └── project.xcworkspace
│ ├── 05-camera
│ │ ├── challenge
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Sounds
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── final
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Sounds
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── background1.imageset
│ │ │ │ ├── background2.imageset
│ │ │ │ ├── cat.imageset
│ │ │ │ ├── enemy.imageset
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ ├── YouLose.imageset
│ │ │ │ ├── YouWin.imageset
│ │ │ │ ├── zombie1.imageset
│ │ │ │ ├── zombie2.imageset
│ │ │ │ ├── zombie3.imageset
│ │ │ │ └── zombie4.imageset
│ │ │ ├── Base.lproj
│ │ │ └── Sounds
│ │ └── ZombieConga.xcodeproj
│ │ └── project.xcworkspace
│ ├── 06-labels
│ │ ├── challenge
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Sounds
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── final
│ │ │ ├── AvailableFonts
│ │ │ │ ├── AvailableFonts
│ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ │ └── Spaceship.imageset
│ │ │ │ │ └── Base.lproj
│ │ │ │ └── AvailableFonts.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── ZombieConga
│ │ │ ├── ZombieConga
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── zombie3.imageset
│ │ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Sounds
│ │ │ └── ZombieConga.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ ├── resources
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── background1.imageset
│ │ │ │ ├── background2.imageset
│ │ │ │ ├── cat.imageset
│ │ │ │ ├── enemy.imageset
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ ├── YouLose.imageset
│ │ │ │ ├── YouWin.imageset
│ │ │ │ ├── zombie1.imageset
│ │ │ │ ├── zombie2.imageset
│ │ │ │ ├── zombie3.imageset
│ │ │ │ └── zombie4.imageset
│ │ │ ├── Base.lproj
│ │ │ └── Sounds
│ │ └── ZombieConga.xcodeproj
│ │ └── project.xcworkspace
│ ├── 07-scene-editor
│ │ ├── challenge1
│ │ │ ├── CatNap
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background.imageset
│ │ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ └── wood_vert2.imageset
│ │ │ │ └── Base.lproj
│ │ │ ├── CatNap.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── Sounds
│ │ ├── challenge2
│ │ │ ├── CatNap
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background.imageset
│ │ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ └── wood_vert2.imageset
│ │ │ │ └── Base.lproj
│ │ │ ├── CatNap.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── Sounds
│ │ ├── final
│ │ │ ├── CatNap
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background.imageset
│ │ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ └── wood_vert2.imageset
│ │ │ │ └── Base.lproj
│ │ │ ├── CatNap.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── Sounds
│ │ └── starter
│ │ └── Resources
│ │ ├── Icons
│ │ │ ├── iOS
│ │ │ └── iTunes
│ │ ├── Images
│ │ └── Sounds
│ ├── 08-beginning-physics
│ │ ├── challenge1
│ │ │ └── SpriteKitPhysicsTest.playground
│ │ │ ├── playground.xcworkspace
│ │ │ ├── Resources
│ │ │ └── Sources
│ │ ├── challenge2
│ │ │ └── SpriteKitPhysicsTest.playground
│ │ │ ├── playground.xcworkspace
│ │ │ ├── Resources
│ │ │ └── Sources
│ │ ├── final
│ │ │ └── SpriteKitPhysicsTest.playground
│ │ │ ├── playground.xcworkspace
│ │ │ ├── Resources
│ │ │ └── Sources
│ │ └── starter
│ │ └── Resources
│ │ └── Shapes
│ ├── 09-intermediate-physics
│ │ ├── challenge1
│ │ │ ├── CatNap
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background.imageset
│ │ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ ├── CatNap.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── Sounds
│ │ ├── final
│ │ │ ├── CatNap
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background.imageset
│ │ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ ├── CatNap.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── Sounds
│ │ └── starter
│ │ ├── CatNap
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── background.imageset
│ │ │ │ ├── cat_awake.imageset
│ │ │ │ ├── cat_bed.imageset
│ │ │ │ ├── cat_body.imageset
│ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ ├── cat_eyes.imageset
│ │ │ │ ├── cat_head.imageset
│ │ │ │ ├── cat_mouth.imageset
│ │ │ │ ├── cat_new.imageset
│ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ ├── cat_tail.imageset
│ │ │ │ ├── hook_base.imageset
│ │ │ │ ├── hook.imageset
│ │ │ │ ├── ice.imageset
│ │ │ │ ├── picture-frame.imageset
│ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ ├── picture.imageset
│ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ ├── rock_vertical.imageset
│ │ │ │ ├── rope.imageset
│ │ │ │ ├── spring.imageset
│ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ ├── wood_square.imageset
│ │ │ │ ├── wood_vert1.imageset
│ │ │ │ └── wood_vert2.imageset
│ │ │ └── Base.lproj
│ │ ├── CatNap.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── Sounds
│ ├── 10-advanced-physics
│ │ ├── challenge1
│ │ │ ├── CatNap
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background.imageset
│ │ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ ├── CatNap.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── Sounds
│ │ ├── final
│ │ │ ├── CatNap
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background.imageset
│ │ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ ├── CatNap.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── Sounds
│ │ └── starter
│ │ ├── CatNap
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── background.imageset
│ │ │ │ ├── cat_awake.imageset
│ │ │ │ ├── cat_bed.imageset
│ │ │ │ ├── cat_body.imageset
│ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ ├── cat_eyes.imageset
│ │ │ │ ├── cat_head.imageset
│ │ │ │ ├── cat_mouth.imageset
│ │ │ │ ├── cat_new.imageset
│ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ ├── cat_tail.imageset
│ │ │ │ ├── hook_base.imageset
│ │ │ │ ├── hook.imageset
│ │ │ │ ├── ice.imageset
│ │ │ │ ├── picture-frame.imageset
│ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ ├── picture.imageset
│ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ ├── rock_vertical.imageset
│ │ │ │ ├── rope.imageset
│ │ │ │ ├── spring.imageset
│ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ ├── wood_square.imageset
│ │ │ │ ├── wood_vert1.imageset
│ │ │ │ └── wood_vert2.imageset
│ │ │ ├── Base.lproj
│ │ │ └── SKTUtils
│ │ ├── CatNap.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── Sounds
│ ├── 11-crop-video-shape-nodes
│ │ ├── challenge1
│ │ │ ├── CatNap
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background.imageset
│ │ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── discoball1.imageset
│ │ │ │ │ ├── discoball2.imageset
│ │ │ │ │ ├── discoball3.imageset
│ │ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── iron_square.imageset
│ │ │ │ │ ├── iron_vert2.imageset
│ │ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── wood_tinted.imageset
│ │ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ ├── CatNap.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── Sounds
│ │ │ └── media
│ │ ├── challenge2
│ │ │ ├── CatNap
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background.imageset
│ │ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── discoball1.imageset
│ │ │ │ │ ├── discoball2.imageset
│ │ │ │ │ ├── discoball3.imageset
│ │ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── iron_square.imageset
│ │ │ │ │ ├── iron_vert2.imageset
│ │ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── wood_tinted.imageset
│ │ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ ├── CatNap.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── Sounds
│ │ │ └── media
│ │ ├── final
│ │ │ ├── CatNap
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background.imageset
│ │ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── discoball1.imageset
│ │ │ │ │ ├── discoball2.imageset
│ │ │ │ │ ├── discoball3.imageset
│ │ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── iron_square.imageset
│ │ │ │ │ ├── iron_vert2.imageset
│ │ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── wood_tinted.imageset
│ │ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ ├── CatNap.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── Sounds
│ │ │ └── media
│ │ └── starter
│ │ ├── CatNap
│ │ │ ├── CatNap
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background.imageset
│ │ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ ├── CatNap.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── Sounds
│ │ └── resources
│ │ ├── levels
│ │ ├── media
│ │ └── textures
│ ├── 12-beginning-tile-maps
│ │ ├── challenge
│ │ │ ├── challenge1
│ │ │ │ └── PestControl
│ │ │ │ ├── PestControl
│ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ │ │ ├── water.imageset
│ │ │ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ │ │ └── player_lt2.imageset
│ │ │ │ │ │ └── Scenery.spriteatlas
│ │ │ │ │ │ ├── bugspray.imageset
│ │ │ │ │ │ ├── stone.imageset
│ │ │ │ │ │ ├── tree.imageset
│ │ │ │ │ │ ├── tree-stump.imageset
│ │ │ │ │ │ ├── tree-top.imageset
│ │ │ │ │ │ ├── wall-broken.imageset
│ │ │ │ │ │ ├── wall-cracked.imageset
│ │ │ │ │ │ └── wall.imageset
│ │ │ │ │ ├── Base.lproj
│ │ │ │ │ └── SKTUtils
│ │ │ │ └── PestControl.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── challenge2
│ │ │ └── PestControl
│ │ │ ├── PestControl
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ │ ├── water.imageset
│ │ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ │ └── player_lt2.imageset
│ │ │ │ │ └── Scenery.spriteatlas
│ │ │ │ │ ├── bugspray.imageset
│ │ │ │ │ ├── stone.imageset
│ │ │ │ │ ├── tree.imageset
│ │ │ │ │ ├── tree-stump.imageset
│ │ │ │ │ ├── tree-top.imageset
│ │ │ │ │ ├── wall-broken.imageset
│ │ │ │ │ ├── wall-cracked.imageset
│ │ │ │ │ └── wall.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── PestControl.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── final
│ │ │ └── PestControl
│ │ │ ├── PestControl
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ │ ├── water.imageset
│ │ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ │ └── player_lt2.imageset
│ │ │ │ │ └── Scenery.spriteatlas
│ │ │ │ │ ├── bugspray.imageset
│ │ │ │ │ ├── stone.imageset
│ │ │ │ │ ├── tree.imageset
│ │ │ │ │ ├── tree-stump.imageset
│ │ │ │ │ ├── tree-top.imageset
│ │ │ │ │ ├── wall-broken.imageset
│ │ │ │ │ ├── wall-cracked.imageset
│ │ │ │ │ └── wall.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── PestControl.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ └── PestControl
│ │ ├── PestControl
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ ├── water.imageset
│ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ └── player_lt2.imageset
│ │ │ │ └── Scenery.spriteatlas
│ │ │ │ ├── bugspray.imageset
│ │ │ │ ├── stone.imageset
│ │ │ │ ├── tree.imageset
│ │ │ │ ├── tree-stump.imageset
│ │ │ │ ├── tree-top.imageset
│ │ │ │ ├── wall-broken.imageset
│ │ │ │ ├── wall-cracked.imageset
│ │ │ │ └── wall.imageset
│ │ │ ├── Base.lproj
│ │ │ └── SKTUtils
│ │ └── PestControl.xcodeproj
│ │ └── project.xcworkspace
│ ├── 13-intermediate-tile-maps
│ │ ├── challenge
│ │ │ └── PestControl
│ │ │ ├── PestControl
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ │ ├── water.imageset
│ │ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ │ └── player_lt2.imageset
│ │ │ │ │ └── Scenery.spriteatlas
│ │ │ │ │ ├── bugspray.imageset
│ │ │ │ │ ├── stone.imageset
│ │ │ │ │ ├── tree.imageset
│ │ │ │ │ ├── tree-stump.imageset
│ │ │ │ │ ├── tree-top.imageset
│ │ │ │ │ ├── wall-broken.imageset
│ │ │ │ │ ├── wall-cracked.imageset
│ │ │ │ │ └── wall.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── PestControl.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── final
│ │ │ └── PestControl
│ │ │ ├── PestControl
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ │ ├── water.imageset
│ │ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ │ └── player_lt2.imageset
│ │ │ │ │ └── Scenery.spriteatlas
│ │ │ │ │ ├── bugspray.imageset
│ │ │ │ │ ├── stone.imageset
│ │ │ │ │ ├── tree.imageset
│ │ │ │ │ ├── tree-stump.imageset
│ │ │ │ │ ├── tree-top.imageset
│ │ │ │ │ ├── wall-broken.imageset
│ │ │ │ │ ├── wall-cracked.imageset
│ │ │ │ │ └── wall.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── PestControl.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ └── PestControl
│ │ ├── PestControl
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ ├── water.imageset
│ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ └── player_lt2.imageset
│ │ │ │ └── Scenery.spriteatlas
│ │ │ │ ├── bugspray.imageset
│ │ │ │ ├── stone.imageset
│ │ │ │ ├── tree.imageset
│ │ │ │ ├── tree-stump.imageset
│ │ │ │ ├── tree-top.imageset
│ │ │ │ ├── wall-broken.imageset
│ │ │ │ ├── wall-cracked.imageset
│ │ │ │ └── wall.imageset
│ │ │ ├── Base.lproj
│ │ │ └── SKTUtils
│ │ └── PestControl.xcodeproj
│ │ └── project.xcworkspace
│ ├── 14-saving-and-loading-games
│ │ ├── challenge
│ │ │ └── PestControl
│ │ │ ├── PestControl
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ │ ├── water.imageset
│ │ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ │ └── player_lt2.imageset
│ │ │ │ │ └── Scenery.spriteatlas
│ │ │ │ │ ├── bugspray.imageset
│ │ │ │ │ ├── stone.imageset
│ │ │ │ │ ├── tree.imageset
│ │ │ │ │ ├── tree-stump.imageset
│ │ │ │ │ ├── tree-top.imageset
│ │ │ │ │ ├── wall-broken.imageset
│ │ │ │ │ ├── wall-cracked.imageset
│ │ │ │ │ └── wall.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── PestControl.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── final
│ │ │ └── PestControl
│ │ │ ├── PestControl
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ │ ├── water.imageset
│ │ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ │ └── player_lt2.imageset
│ │ │ │ │ └── Scenery.spriteatlas
│ │ │ │ │ ├── bugspray.imageset
│ │ │ │ │ ├── stone.imageset
│ │ │ │ │ ├── tree.imageset
│ │ │ │ │ ├── tree-stump.imageset
│ │ │ │ │ ├── tree-top.imageset
│ │ │ │ │ ├── wall-broken.imageset
│ │ │ │ │ ├── wall-cracked.imageset
│ │ │ │ │ └── wall.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── PestControl.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ └── PestControl
│ │ ├── PestControl
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ ├── water.imageset
│ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ └── player_lt2.imageset
│ │ │ │ └── Scenery.spriteatlas
│ │ │ │ ├── bugspray.imageset
│ │ │ │ ├── stone.imageset
│ │ │ │ ├── tree.imageset
│ │ │ │ ├── tree-stump.imageset
│ │ │ │ ├── tree-top.imageset
│ │ │ │ ├── wall-broken.imageset
│ │ │ │ ├── wall-cracked.imageset
│ │ │ │ └── wall.imageset
│ │ │ ├── Base.lproj
│ │ │ └── SKTUtils
│ │ └── PestControl.xcodeproj
│ │ └── project.xcworkspace
│ ├── 15-making-drop-charge
│ │ ├── challenge1
│ │ │ └── DropCharge
│ │ │ ├── DropCharge
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background
│ │ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── objects
│ │ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── player
│ │ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ └── UI
│ │ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Ready.imageset
│ │ │ │ │ └── Score.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── DropCharge.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── challenge2
│ │ │ └── DropCharge
│ │ │ ├── DropCharge
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background
│ │ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── objects
│ │ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── player
│ │ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ └── UI
│ │ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Ready.imageset
│ │ │ │ │ └── Score.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── DropCharge.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── challenge3
│ │ │ └── DropCharge
│ │ │ ├── DropCharge
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background
│ │ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── objects
│ │ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── player
│ │ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ └── UI
│ │ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Ready.imageset
│ │ │ │ │ └── Score.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── DropCharge.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── challenge4
│ │ │ └── DropCharge
│ │ │ ├── DropCharge
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background
│ │ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── objects
│ │ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── player
│ │ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ └── UI
│ │ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Ready.imageset
│ │ │ │ │ └── Score.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── DropCharge.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── final
│ │ │ └── DropCharge
│ │ │ ├── DropCharge
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background
│ │ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── objects
│ │ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── player
│ │ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ └── UI
│ │ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Ready.imageset
│ │ │ │ │ └── Score.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── DropCharge.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ └── resources
│ │ ├── icons
│ │ └── images
│ │ ├── background
│ │ ├── objects
│ │ ├── player
│ │ └── UI
│ ├── 16-particle-systems
│ │ ├── challenge
│ │ │ ├── DropCharge
│ │ │ │ ├── DropCharge
│ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ │ ├── background
│ │ │ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ │ ├── Launch.imageset
│ │ │ │ │ │ ├── objects
│ │ │ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ │ ├── player
│ │ │ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ │ ├── spark.imageset
│ │ │ │ │ │ ├── Star.imageset
│ │ │ │ │ │ └── UI
│ │ │ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ │ ├── GameOver.imageset
│ │ │ │ │ │ ├── Ready.imageset
│ │ │ │ │ │ └── Score.imageset
│ │ │ │ │ ├── Base.lproj
│ │ │ │ │ └── SKTUtils
│ │ │ │ └── DropCharge.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ ├── particles
│ │ │ └── resources
│ │ ├── final
│ │ │ └── DropCharge
│ │ │ ├── DropCharge
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background
│ │ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── objects
│ │ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── player
│ │ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ ├── spark.imageset
│ │ │ │ │ └── UI
│ │ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Ready.imageset
│ │ │ │ │ └── Score.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── DropCharge.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ ├── DropCharge
│ │ │ ├── DropCharge
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background
│ │ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── objects
│ │ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── player
│ │ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ └── UI
│ │ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Ready.imageset
│ │ │ │ │ └── Score.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── DropCharge.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── examples
│ │ │ ├── Rain
│ │ │ │ ├── Rain
│ │ │ │ │ ├── Assets.xcassets
│ │ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ │ └── Rain_Drop.imageset
│ │ │ │ │ └── Base.lproj
│ │ │ │ └── Rain.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ └── Starfield
│ │ │ ├── Starfield
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ └── Spaceship.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── Starfield.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── resources
│ ├── 17-juice-up-your-game
│ │ ├── challenge
│ │ │ └── DropCharge
│ │ │ ├── DropCharge
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background
│ │ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── objects
│ │ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── player
│ │ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ ├── spark.imageset
│ │ │ │ │ ├── Star.imageset
│ │ │ │ │ └── UI
│ │ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Ready.imageset
│ │ │ │ │ └── Score.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ ├── SKTUtils
│ │ │ │ └── sounds
│ │ │ └── DropCharge.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── final
│ │ │ └── DropCharge
│ │ │ ├── DropCharge
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background
│ │ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── objects
│ │ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── player
│ │ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ ├── spark.imageset
│ │ │ │ │ ├── Star.imageset
│ │ │ │ │ └── UI
│ │ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Ready.imageset
│ │ │ │ │ └── Score.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ ├── SKTUtils
│ │ │ │ └── sounds
│ │ │ └── DropCharge.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ ├── DropCharge
│ │ │ ├── DropCharge
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── background
│ │ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── objects
│ │ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── player
│ │ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ ├── spark.imageset
│ │ │ │ │ ├── Star.imageset
│ │ │ │ │ └── UI
│ │ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Ready.imageset
│ │ │ │ │ └── Score.imageset
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ └── DropCharge.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── resources
│ │ └── sounds
│ ├── 18-macos-games
│ │ ├── challenge
│ │ │ └── Zombie Piranhas
│ │ │ ├── Zombie Piranhas
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Background
│ │ │ │ │ │ ├── Background_1.imageset
│ │ │ │ │ │ ├── Background_2.imageset
│ │ │ │ │ │ ├── Background_3.imageset
│ │ │ │ │ │ ├── Background_4.imageset
│ │ │ │ │ │ ├── Bubble.imageset
│ │ │ │ │ │ └── Cloud.imageset
│ │ │ │ │ ├── Fish
│ │ │ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ │ └── YumFish_2.imageset
│ │ │ │ │ ├── Foreground
│ │ │ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ │ ├── Hook.imageset
│ │ │ │ │ │ └── Pole_Side.imageset
│ │ │ │ │ └── Title.imageset
│ │ │ │ ├── Audio
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ ├── Zombie Piranhas macOS
│ │ │ │ ├── Assets_macOS.xcassets
│ │ │ │ │ └── AppIcon_macOS.appiconset
│ │ │ │ └── Base.lproj
│ │ │ └── Zombie Piranhas.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── final
│ │ │ └── Zombie Piranhas
│ │ │ ├── Zombie Piranhas
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Background
│ │ │ │ │ │ ├── Background_1.imageset
│ │ │ │ │ │ ├── Background_2.imageset
│ │ │ │ │ │ ├── Background_3.imageset
│ │ │ │ │ │ ├── Background_4.imageset
│ │ │ │ │ │ ├── Bubble.imageset
│ │ │ │ │ │ └── Cloud.imageset
│ │ │ │ │ ├── Fish
│ │ │ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ │ └── YumFish_2.imageset
│ │ │ │ │ ├── Foreground
│ │ │ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ │ ├── Hook.imageset
│ │ │ │ │ │ └── Pole_Side.imageset
│ │ │ │ │ └── Title.imageset
│ │ │ │ ├── Audio
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ ├── Zombie Piranhas macOS
│ │ │ │ ├── Assets_macOS.xcassets
│ │ │ │ │ └── AppIcon_macOS.appiconset
│ │ │ │ └── Base.lproj
│ │ │ └── Zombie Piranhas.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ ├── Icon Art
│ │ └── Zombie Piranhas
│ │ ├── Zombie Piranhas
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Background
│ │ │ │ │ ├── Background_1.imageset
│ │ │ │ │ ├── Background_2.imageset
│ │ │ │ │ ├── Background_3.imageset
│ │ │ │ │ ├── Background_4.imageset
│ │ │ │ │ ├── Bubble.imageset
│ │ │ │ │ └── Cloud.imageset
│ │ │ │ ├── Fish
│ │ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ └── YumFish_2.imageset
│ │ │ │ ├── Foreground
│ │ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ ├── Hook.imageset
│ │ │ │ │ └── Pole_Side.imageset
│ │ │ │ └── Title.imageset
│ │ │ ├── Audio
│ │ │ ├── Base.lproj
│ │ │ └── SKTUtils
│ │ └── Zombie Piranhas.xcodeproj
│ │ └── project.xcworkspace
│ ├── 19-tvos-games
│ │ ├── final
│ │ │ └── Zombie Piranhas
│ │ │ ├── Zombie Piranhas
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Background
│ │ │ │ │ │ ├── Background_1.imageset
│ │ │ │ │ │ ├── Background_2.imageset
│ │ │ │ │ │ ├── Background_3.imageset
│ │ │ │ │ │ ├── Background_4.imageset
│ │ │ │ │ │ ├── Bubble.imageset
│ │ │ │ │ │ └── Cloud.imageset
│ │ │ │ │ ├── Fish
│ │ │ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ │ └── YumFish_2.imageset
│ │ │ │ │ ├── Foreground
│ │ │ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ │ ├── Hook.imageset
│ │ │ │ │ │ └── Pole_Side.imageset
│ │ │ │ │ └── Title.imageset
│ │ │ │ ├── Audio
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ ├── Zombie Piranhas macOS
│ │ │ │ ├── Assets_macOS.xcassets
│ │ │ │ │ └── AppIcon_macOS.appiconset
│ │ │ │ └── Base.lproj
│ │ │ ├── Zombie Piranhas tvOS
│ │ │ │ ├── Assets_tvos.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
│ │ │ └── Zombie Piranhas.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ ├── resources
│ │ │ └── tvOS Icons
│ │ │ ├── Large
│ │ │ └── Small
│ │ └── Zombie Piranhas
│ │ ├── Zombie Piranhas
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Background
│ │ │ │ │ ├── Background_1.imageset
│ │ │ │ │ ├── Background_2.imageset
│ │ │ │ │ ├── Background_3.imageset
│ │ │ │ │ ├── Background_4.imageset
│ │ │ │ │ ├── Bubble.imageset
│ │ │ │ │ └── Cloud.imageset
│ │ │ │ ├── Fish
│ │ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ └── YumFish_2.imageset
│ │ │ │ ├── Foreground
│ │ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ ├── Hook.imageset
│ │ │ │ │ └── Pole_Side.imageset
│ │ │ │ └── Title.imageset
│ │ │ ├── Audio
│ │ │ ├── Base.lproj
│ │ │ └── SKTUtils
│ │ ├── Zombie Piranhas macOS
│ │ │ ├── Assets_macOS.xcassets
│ │ │ │ └── AppIcon_macOS.appiconset
│ │ │ └── Base.lproj
│ │ └── Zombie Piranhas.xcodeproj
│ │ └── project.xcworkspace
│ ├── 20-watchos-games
│ │ ├── final
│ │ │ └── Zombie Piranhas
│ │ │ ├── Zombie Piranhas
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Background
│ │ │ │ │ │ ├── Background_1.imageset
│ │ │ │ │ │ ├── Background_2.imageset
│ │ │ │ │ │ ├── Background_3.imageset
│ │ │ │ │ │ ├── Background_4.imageset
│ │ │ │ │ │ ├── Bubble.imageset
│ │ │ │ │ │ └── Cloud.imageset
│ │ │ │ │ ├── Fish
│ │ │ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ │ └── YumFish_2.imageset
│ │ │ │ │ ├── Foreground
│ │ │ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ │ ├── Hook.imageset
│ │ │ │ │ │ └── Pole_Side.imageset
│ │ │ │ │ └── Title.imageset
│ │ │ │ ├── Audio
│ │ │ │ ├── Base.lproj
│ │ │ │ └── SKTUtils
│ │ │ ├── Zombie Piranhas macOS
│ │ │ │ ├── Assets_macOS.xcassets
│ │ │ │ │ └── AppIcon_macOS.appiconset
│ │ │ │ └── Base.lproj
│ │ │ ├── Zombie Piranhas tvOS
│ │ │ │ ├── Assets_tvos.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
│ │ │ ├── Zombie Piranhas watchOS
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ └── AppIcon.appiconset
│ │ │ │ └── Base.lproj
│ │ │ ├── Zombie Piranhas watchOS Extension
│ │ │ │ └── Assets.xcassets
│ │ │ │ ├── Artwork
│ │ │ │ │ ├── Background_1.imageset
│ │ │ │ │ ├── Background_2.imageset
│ │ │ │ │ ├── Background_3.imageset
│ │ │ │ │ ├── Background_4.imageset
│ │ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ ├── Bubble.imageset
│ │ │ │ │ ├── Cloud.imageset
│ │ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ ├── Hook.imageset
│ │ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ ├── Pole_Side.imageset
│ │ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ └── YumFish_2.imageset
│ │ │ │ └── Complication.complicationset
│ │ │ │ ├── Circular.imageset
│ │ │ │ ├── Modular.imageset
│ │ │ │ └── Utilitarian.imageset
│ │ │ └── Zombie Piranhas.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ ├── Artwork
│ │ ├── Icon Art
│ │ └── Zombie Piranhas
│ │ ├── Zombie Piranhas
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Background
│ │ │ │ │ ├── Background_1.imageset
│ │ │ │ │ ├── Background_2.imageset
│ │ │ │ │ ├── Background_3.imageset
│ │ │ │ │ ├── Background_4.imageset
│ │ │ │ │ ├── Bubble.imageset
│ │ │ │ │ └── Cloud.imageset
│ │ │ │ ├── Fish
│ │ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ └── YumFish_2.imageset
│ │ │ │ ├── Foreground
│ │ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ ├── Hook.imageset
│ │ │ │ │ └── Pole_Side.imageset
│ │ │ │ └── Title.imageset
│ │ │ ├── Audio
│ │ │ ├── Base.lproj
│ │ │ └── SKTUtils
│ │ ├── Zombie Piranhas macOS
│ │ │ ├── Assets_macOS.xcassets
│ │ │ │ └── AppIcon_macOS.appiconset
│ │ │ └── Base.lproj
│ │ ├── Zombie Piranhas tvOS
│ │ │ ├── Assets_tvos.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
│ │ └── Zombie Piranhas.xcodeproj
│ │ └── project.xcworkspace
│ ├── 21-game-center-achievements
│ │ ├── challenge
│ │ │ └── CircuitRacer
│ │ │ ├── CircuitRacer
│ │ │ │ ├── Base.lproj
│ │ │ │ ├── CircuitRacerAssets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── base.imageset
│ │ │ │ │ ├── bg_main_menu.imageset
│ │ │ │ │ ├── bg_select_car.imageset
│ │ │ │ │ ├── bg_select_difficulty.imageset
│ │ │ │ │ ├── box.imageset
│ │ │ │ │ ├── btn_back.imageset
│ │ │ │ │ ├── btn_car1.imageset
│ │ │ │ │ ├── btn_car2.imageset
│ │ │ │ │ ├── btn_car3.imageset
│ │ │ │ │ ├── btn_easy.imageset
│ │ │ │ │ ├── btn_gamecenter.imageset
│ │ │ │ │ ├── btn_hard.imageset
│ │ │ │ │ ├── btn_medium.imageset
│ │ │ │ │ ├── btn_pause.imageset
│ │ │ │ │ ├── btn_play.imageset
│ │ │ │ │ ├── button_green.imageset
│ │ │ │ │ ├── button_red.imageset
│ │ │ │ │ ├── car_1.imageset
│ │ │ │ │ ├── car_2.imageset
│ │ │ │ │ ├── car_3.imageset
│ │ │ │ │ ├── circuit_racer_logo.imageset
│ │ │ │ │ ├── knob.imageset
│ │ │ │ │ ├── track_1.imageset
│ │ │ │ │ ├── track_2.imageset
│ │ │ │ │ └── track_3.imageset
│ │ │ │ ├── GameKit
│ │ │ │ ├── InputSources
│ │ │ │ ├── Resources
│ │ │ │ │ ├── Levels
│ │ │ │ │ └── Sounds
│ │ │ │ ├── Scenes
│ │ │ │ │ ├── FailureScene
│ │ │ │ │ ├── GameScene
│ │ │ │ │ ├── GameStates
│ │ │ │ │ ├── PauseScene
│ │ │ │ │ └── SuccessScene
│ │ │ │ ├── SKTUtils
│ │ │ │ └── ViewControllers
│ │ │ └── CircuitRacer.xcodeproj
│ │ │ └── project.xcworkspace
│ │ ├── final
│ │ │ └── CircuitRacer
│ │ │ ├── CircuitRacer
│ │ │ │ ├── Base.lproj
│ │ │ │ ├── CircuitRacerAssets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── base.imageset
│ │ │ │ │ ├── bg_main_menu.imageset
│ │ │ │ │ ├── bg_select_car.imageset
│ │ │ │ │ ├── bg_select_difficulty.imageset
│ │ │ │ │ ├── box.imageset
│ │ │ │ │ ├── btn_back.imageset
│ │ │ │ │ ├── btn_car1.imageset
│ │ │ │ │ ├── btn_car2.imageset
│ │ │ │ │ ├── btn_car3.imageset
│ │ │ │ │ ├── btn_easy.imageset
│ │ │ │ │ ├── btn_gamecenter.imageset
│ │ │ │ │ ├── btn_hard.imageset
│ │ │ │ │ ├── btn_medium.imageset
│ │ │ │ │ ├── btn_pause.imageset
│ │ │ │ │ ├── btn_play.imageset
│ │ │ │ │ ├── button_green.imageset
│ │ │ │ │ ├── button_red.imageset
│ │ │ │ │ ├── car_1.imageset
│ │ │ │ │ ├── car_2.imageset
│ │ │ │ │ ├── car_3.imageset
│ │ │ │ │ ├── circuit_racer_logo.imageset
│ │ │ │ │ ├── knob.imageset
│ │ │ │ │ ├── track_1.imageset
│ │ │ │ │ ├── track_2.imageset
│ │ │ │ │ └── track_3.imageset
│ │ │ │ ├── GameKit
│ │ │ │ ├── InputSources
│ │ │ │ ├── Resources
│ │ │ │ │ ├── Levels
│ │ │ │ │ └── Sounds
│ │ │ │ ├── Scenes
│ │ │ │ │ ├── FailureScene
│ │ │ │ │ ├── GameScene
│ │ │ │ │ ├── GameStates
│ │ │ │ │ ├── PauseScene
│ │ │ │ │ └── SuccessScene
│ │ │ │ ├── SKTUtils
│ │ │ │ └── ViewControllers
│ │ │ └── CircuitRacer.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ ├── CircuitRacer
│ │ │ ├── CircuitRacer
│ │ │ │ ├── Base.lproj
│ │ │ │ ├── CircuitRacerAssets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── base.imageset
│ │ │ │ │ ├── bg_main_menu.imageset
│ │ │ │ │ ├── bg_select_car.imageset
│ │ │ │ │ ├── bg_select_difficulty.imageset
│ │ │ │ │ ├── box.imageset
│ │ │ │ │ ├── btn_back.imageset
│ │ │ │ │ ├── btn_car1.imageset
│ │ │ │ │ ├── btn_car2.imageset
│ │ │ │ │ ├── btn_car3.imageset
│ │ │ │ │ ├── btn_easy.imageset
│ │ │ │ │ ├── btn_gamecenter.imageset
│ │ │ │ │ ├── btn_hard.imageset
│ │ │ │ │ ├── btn_medium.imageset
│ │ │ │ │ ├── btn_pause.imageset
│ │ │ │ │ ├── btn_play.imageset
│ │ │ │ │ ├── button_green.imageset
│ │ │ │ │ ├── button_red.imageset
│ │ │ │ │ ├── car_1.imageset
│ │ │ │ │ ├── car_2.imageset
│ │ │ │ │ ├── car_3.imageset
│ │ │ │ │ ├── circuit_racer_logo.imageset
│ │ │ │ │ ├── knob.imageset
│ │ │ │ │ ├── track_1.imageset
│ │ │ │ │ ├── track_2.imageset
│ │ │ │ │ └── track_3.imageset
│ │ │ │ ├── InputSources
│ │ │ │ ├── Resources
│ │ │ │ │ ├── Levels
│ │ │ │ │ └── Sounds
│ │ │ │ ├── Scenes
│ │ │ │ │ ├── FailureScene
│ │ │ │ │ ├── GameScene
│ │ │ │ │ ├── GameStates
│ │ │ │ │ ├── PauseScene
│ │ │ │ │ └── SuccessScene
│ │ │ │ ├── SKTUtils
│ │ │ │ └── ViewControllers
│ │ │ └── CircuitRacer.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── Resources
│ ├── 22-game-center-leaderboards
│ │ ├── final
│ │ │ └── CircuitRacer
│ │ │ ├── CircuitRacer
│ │ │ │ ├── Base.lproj
│ │ │ │ ├── CircuitRacerAssets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── base.imageset
│ │ │ │ │ ├── bg_main_menu.imageset
│ │ │ │ │ ├── bg_select_car.imageset
│ │ │ │ │ ├── bg_select_difficulty.imageset
│ │ │ │ │ ├── box.imageset
│ │ │ │ │ ├── btn_back.imageset
│ │ │ │ │ ├── btn_car1.imageset
│ │ │ │ │ ├── btn_car2.imageset
│ │ │ │ │ ├── btn_car3.imageset
│ │ │ │ │ ├── btn_easy.imageset
│ │ │ │ │ ├── btn_gamecenter.imageset
│ │ │ │ │ ├── btn_hard.imageset
│ │ │ │ │ ├── btn_medium.imageset
│ │ │ │ │ ├── btn_pause.imageset
│ │ │ │ │ ├── btn_play.imageset
│ │ │ │ │ ├── button_green.imageset
│ │ │ │ │ ├── button_red.imageset
│ │ │ │ │ ├── car_1.imageset
│ │ │ │ │ ├── car_2.imageset
│ │ │ │ │ ├── car_3.imageset
│ │ │ │ │ ├── circuit_racer_logo.imageset
│ │ │ │ │ ├── knob.imageset
│ │ │ │ │ ├── track_1.imageset
│ │ │ │ │ ├── track_2.imageset
│ │ │ │ │ └── track_3.imageset
│ │ │ │ ├── GameKit
│ │ │ │ ├── InputSources
│ │ │ │ ├── Resources
│ │ │ │ │ ├── Levels
│ │ │ │ │ └── Sounds
│ │ │ │ ├── Scenes
│ │ │ │ │ ├── FailureScene
│ │ │ │ │ ├── GameScene
│ │ │ │ │ ├── GameStates
│ │ │ │ │ ├── PauseScene
│ │ │ │ │ └── SuccessScene
│ │ │ │ ├── SKTUtils
│ │ │ │ └── ViewControllers
│ │ │ └── CircuitRacer.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ ├── CircuitRacer
│ │ │ ├── CircuitRacer
│ │ │ │ ├── Base.lproj
│ │ │ │ ├── CircuitRacerAssets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── base.imageset
│ │ │ │ │ ├── bg_main_menu.imageset
│ │ │ │ │ ├── bg_select_car.imageset
│ │ │ │ │ ├── bg_select_difficulty.imageset
│ │ │ │ │ ├── box.imageset
│ │ │ │ │ ├── btn_back.imageset
│ │ │ │ │ ├── btn_car1.imageset
│ │ │ │ │ ├── btn_car2.imageset
│ │ │ │ │ ├── btn_car3.imageset
│ │ │ │ │ ├── btn_easy.imageset
│ │ │ │ │ ├── btn_gamecenter.imageset
│ │ │ │ │ ├── btn_hard.imageset
│ │ │ │ │ ├── btn_medium.imageset
│ │ │ │ │ ├── btn_pause.imageset
│ │ │ │ │ ├── btn_play.imageset
│ │ │ │ │ ├── button_green.imageset
│ │ │ │ │ ├── button_red.imageset
│ │ │ │ │ ├── car_1.imageset
│ │ │ │ │ ├── car_2.imageset
│ │ │ │ │ ├── car_3.imageset
│ │ │ │ │ ├── circuit_racer_logo.imageset
│ │ │ │ │ ├── knob.imageset
│ │ │ │ │ ├── track_1.imageset
│ │ │ │ │ ├── track_2.imageset
│ │ │ │ │ └── track_3.imageset
│ │ │ │ ├── GameKit
│ │ │ │ ├── InputSources
│ │ │ │ ├── Resources
│ │ │ │ │ ├── Levels
│ │ │ │ │ └── Sounds
│ │ │ │ ├── Scenes
│ │ │ │ │ ├── FailureScene
│ │ │ │ │ ├── GameScene
│ │ │ │ │ ├── GameStates
│ │ │ │ │ ├── PauseScene
│ │ │ │ │ └── SuccessScene
│ │ │ │ ├── SKTUtils
│ │ │ │ └── ViewControllers
│ │ │ └── CircuitRacer.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── Resources
│ ├── 23-replaykit
│ │ ├── final
│ │ │ └── CircuitRacer
│ │ │ ├── CircuitRacer
│ │ │ │ ├── Base.lproj
│ │ │ │ ├── CircuitRacerAssets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── base.imageset
│ │ │ │ │ ├── bg_main_menu.imageset
│ │ │ │ │ ├── bg_select_car.imageset
│ │ │ │ │ ├── bg_select_difficulty.imageset
│ │ │ │ │ ├── box.imageset
│ │ │ │ │ ├── btn_autorecord_off.imageset
│ │ │ │ │ ├── btn_autorecord_on.imageset
│ │ │ │ │ ├── btn_autorecord_small_off.imageset
│ │ │ │ │ ├── btn_autorecord_small_on.imageset
│ │ │ │ │ ├── btn_back.imageset
│ │ │ │ │ ├── btn_car1.imageset
│ │ │ │ │ ├── btn_car2.imageset
│ │ │ │ │ ├── btn_car3.imageset
│ │ │ │ │ ├── btn_easy.imageset
│ │ │ │ │ ├── btn_gamecenter.imageset
│ │ │ │ │ ├── btn_hard.imageset
│ │ │ │ │ ├── btn_medium.imageset
│ │ │ │ │ ├── btn_pause.imageset
│ │ │ │ │ ├── btn_play.imageset
│ │ │ │ │ ├── button_green.imageset
│ │ │ │ │ ├── button_red.imageset
│ │ │ │ │ ├── car_1.imageset
│ │ │ │ │ ├── car_2.imageset
│ │ │ │ │ ├── car_3.imageset
│ │ │ │ │ ├── circuit_racer_logo.imageset
│ │ │ │ │ ├── indicator_rec.imageset
│ │ │ │ │ ├── knob.imageset
│ │ │ │ │ ├── level_1_preview_frame.imageset
│ │ │ │ │ ├── level_2_preview_frame.imageset
│ │ │ │ │ ├── level_3_preview_frame.imageset
│ │ │ │ │ ├── play_icon.imageset
│ │ │ │ │ ├── track_1.imageset
│ │ │ │ │ ├── track_2.imageset
│ │ │ │ │ └── track_3.imageset
│ │ │ │ ├── GameKit
│ │ │ │ ├── InputSources
│ │ │ │ ├── Resources
│ │ │ │ │ ├── Levels
│ │ │ │ │ └── Sounds
│ │ │ │ ├── Scenes
│ │ │ │ │ ├── FailureScene
│ │ │ │ │ ├── GameScene
│ │ │ │ │ ├── GameStates
│ │ │ │ │ ├── PauseScene
│ │ │ │ │ └── SuccessScene
│ │ │ │ ├── ScreenRecording
│ │ │ │ ├── SKTUtils
│ │ │ │ └── ViewControllers
│ │ │ └── CircuitRacer.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── starter
│ │ ├── CircuitRacer
│ │ │ ├── CircuitRacer
│ │ │ │ ├── Base.lproj
│ │ │ │ ├── CircuitRacerAssets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── base.imageset
│ │ │ │ │ ├── bg_main_menu.imageset
│ │ │ │ │ ├── bg_select_car.imageset
│ │ │ │ │ ├── bg_select_difficulty.imageset
│ │ │ │ │ ├── box.imageset
│ │ │ │ │ ├── btn_back.imageset
│ │ │ │ │ ├── btn_car1.imageset
│ │ │ │ │ ├── btn_car2.imageset
│ │ │ │ │ ├── btn_car3.imageset
│ │ │ │ │ ├── btn_easy.imageset
│ │ │ │ │ ├── btn_gamecenter.imageset
│ │ │ │ │ ├── btn_hard.imageset
│ │ │ │ │ ├── btn_medium.imageset
│ │ │ │ │ ├── btn_pause.imageset
│ │ │ │ │ ├── btn_play.imageset
│ │ │ │ │ ├── button_green.imageset
│ │ │ │ │ ├── button_red.imageset
│ │ │ │ │ ├── car_1.imageset
│ │ │ │ │ ├── car_2.imageset
│ │ │ │ │ ├── car_3.imageset
│ │ │ │ │ ├── circuit_racer_logo.imageset
│ │ │ │ │ ├── knob.imageset
│ │ │ │ │ ├── track_1.imageset
│ │ │ │ │ ├── track_2.imageset
│ │ │ │ │ └── track_3.imageset
│ │ │ │ ├── GameKit
│ │ │ │ ├── InputSources
│ │ │ │ ├── Resources
│ │ │ │ │ ├── Levels
│ │ │ │ │ └── Sounds
│ │ │ │ ├── Scenes
│ │ │ │ │ ├── FailureScene
│ │ │ │ │ ├── GameScene
│ │ │ │ │ ├── GameStates
│ │ │ │ │ ├── PauseScene
│ │ │ │ │ └── SuccessScene
│ │ │ │ ├── SKTUtils
│ │ │ │ └── ViewControllers
│ │ │ └── CircuitRacer.xcodeproj
│ │ │ └── project.xcworkspace
│ │ └── Resources
│ └── 24-2d-art-for-programmers
│ ├── challenge
│ ├── final
│ └── starter
└── Source
├── 01-sprites
│ ├── challenge1
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ └── Info.plist
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── challenge2
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ └── Info.plist
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── final
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ └── Info.plist
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ └── resources
│ ├── icons
│ │ ├── Icon20@2x.png
│ │ ├── Icon20@3x.png
│ │ ├── Icon20.png
│ │ ├── Icon29@2x.png
│ │ ├── Icon29@3x.png
│ │ ├── Icon29.png
│ │ ├── Icon40@2x.png
│ │ ├── Icon40@3x.png
│ │ ├── Icon40.png
│ │ ├── Icon60@2x.png
│ │ ├── Icon60@3x.png
│ │ ├── Icon76@2x.png
│ │ ├── Icon76.png
│ │ └── Icon83.5@2x.png
│ └── images
│ ├── background1.png
│ ├── background2.png
│ ├── cat.png
│ ├── enemy.png
│ ├── MainMenu.png
│ ├── YouLose.png
│ ├── YouWin.png
│ ├── zombie1.png
│ ├── zombie2.png
│ ├── zombie3.png
│ └── zombie4.png
├── 02-manual-movement
│ ├── challenge1
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ └── MyUtils.swift
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── challenge2
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ └── MyUtils.swift
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── challenge3
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ └── MyUtils.swift
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── final
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ └── Info.plist
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ └── ZombieConga
│ ├── ZombieConga
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ ├── Icon20@2x.png
│ │ │ │ ├── Icon20@3x.png
│ │ │ │ ├── Icon20.png
│ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ ├── Icon29@2x.png
│ │ │ │ ├── Icon29@3x.png
│ │ │ │ ├── Icon29.png
│ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ ├── Icon40@2x.png
│ │ │ │ ├── Icon40@3x.png
│ │ │ │ ├── Icon40.png
│ │ │ │ ├── Icon60@2x.png
│ │ │ │ ├── Icon60@3x.png
│ │ │ │ ├── Icon76@2x.png
│ │ │ │ ├── Icon76.png
│ │ │ │ └── Icon83.5@2x.png
│ │ │ ├── background1.imageset
│ │ │ │ ├── background1.png
│ │ │ │ └── Contents.json
│ │ │ ├── background2.imageset
│ │ │ │ ├── background2.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat.imageset
│ │ │ │ ├── cat.png
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── enemy.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── enemy.png
│ │ │ ├── MainMenu.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── MainMenu.png
│ │ │ ├── YouLose.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── YouLose.png
│ │ │ ├── YouWin.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── YouWin.png
│ │ │ ├── zombie1.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie1.png
│ │ │ ├── zombie2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie2.png
│ │ │ ├── zombie3.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie3.png
│ │ │ └── zombie4.imageset
│ │ │ ├── Contents.json
│ │ │ └── zombie4.png
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── GameScene.swift
│ │ ├── GameViewController.swift
│ │ └── Info.plist
│ └── ZombieConga.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ └── contents.xcworkspacedata
├── 03-actions
│ ├── challenge1
│ │ ├── ActionsCatalog
│ │ │ ├── ActionsCatalog
│ │ │ │ ├── AppDelegate.swift
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── cat.imageset
│ │ │ │ │ │ ├── cat.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── dog.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── dog.png
│ │ │ │ │ └── turtle.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── turtle.png
│ │ │ │ ├── Base.lproj
│ │ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ │ └── Main.storyboard
│ │ │ │ ├── GameScene.swift
│ │ │ │ ├── GameViewController.swift
│ │ │ │ ├── Info.plist
│ │ │ │ └── MyUtils.swift
│ │ │ └── ActionsCatalog.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── MyUtils.swift
│ │ │ └── Sounds
│ │ │ ├── backgroundMusic.mp3
│ │ │ ├── hitCatLady.wav
│ │ │ ├── hitCat.wav
│ │ │ ├── lose.wav
│ │ │ └── win.wav
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── challenge2
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── MyUtils.swift
│ │ │ └── Sounds
│ │ │ ├── backgroundMusic.mp3
│ │ │ ├── hitCatLady.wav
│ │ │ ├── hitCat.wav
│ │ │ ├── lose.wav
│ │ │ └── win.wav
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── challenge3
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── MyUtils.swift
│ │ │ └── Sounds
│ │ │ ├── backgroundMusic.mp3
│ │ │ ├── hitCatLady.wav
│ │ │ ├── hitCat.wav
│ │ │ ├── lose.wav
│ │ │ └── win.wav
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── final
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── MyUtils.swift
│ │ │ └── Sounds
│ │ │ ├── backgroundMusic.mp3
│ │ │ ├── hitCatLady.wav
│ │ │ ├── hitCat.wav
│ │ │ ├── lose.wav
│ │ │ └── win.wav
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ ├── resources
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── hitCatLady.wav
│ │ ├── hitCat.wav
│ │ ├── lose.wav
│ │ └── win.wav
│ └── ZombieConga
│ ├── ZombieConga
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ ├── Icon20@2x.png
│ │ │ │ ├── Icon20@3x.png
│ │ │ │ ├── Icon20.png
│ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ ├── Icon29@2x.png
│ │ │ │ ├── Icon29@3x.png
│ │ │ │ ├── Icon29.png
│ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ ├── Icon40@2x.png
│ │ │ │ ├── Icon40@3x.png
│ │ │ │ ├── Icon40.png
│ │ │ │ ├── Icon60@2x.png
│ │ │ │ ├── Icon60@3x.png
│ │ │ │ ├── Icon76@2x.png
│ │ │ │ ├── Icon76.png
│ │ │ │ └── Icon83.5@2x.png
│ │ │ ├── background1.imageset
│ │ │ │ ├── background1.png
│ │ │ │ └── Contents.json
│ │ │ ├── background2.imageset
│ │ │ │ ├── background2.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat.imageset
│ │ │ │ ├── cat.png
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── enemy.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── enemy.png
│ │ │ ├── MainMenu.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── MainMenu.png
│ │ │ ├── YouLose.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── YouLose.png
│ │ │ ├── YouWin.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── YouWin.png
│ │ │ ├── zombie1.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie1.png
│ │ │ ├── zombie2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie2.png
│ │ │ ├── zombie3.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie3.png
│ │ │ └── zombie4.imageset
│ │ │ ├── Contents.json
│ │ │ └── zombie4.png
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── GameScene.swift
│ │ ├── GameViewController.swift
│ │ ├── Info.plist
│ │ └── MyUtils.swift
│ └── ZombieConga.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ └── contents.xcworkspacedata
├── 04-scenes
│ ├── challenge
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameOverScene.swift
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── MainMenuScene.swift
│ │ │ ├── MyUtils.swift
│ │ │ └── Sounds
│ │ │ ├── backgroundMusic.mp3
│ │ │ ├── hitCatLady.wav
│ │ │ ├── hitCat.wav
│ │ │ ├── lose.wav
│ │ │ └── win.wav
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── final
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameOverScene.swift
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── MyUtils.swift
│ │ │ └── Sounds
│ │ │ ├── backgroundMusic.mp3
│ │ │ ├── hitCatLady.wav
│ │ │ ├── hitCat.wav
│ │ │ ├── lose.wav
│ │ │ └── win.wav
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ └── ZombieConga
│ ├── ZombieConga
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ ├── Icon20@2x.png
│ │ │ │ ├── Icon20@3x.png
│ │ │ │ ├── Icon20.png
│ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ ├── Icon29@2x.png
│ │ │ │ ├── Icon29@3x.png
│ │ │ │ ├── Icon29.png
│ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ ├── Icon40@2x.png
│ │ │ │ ├── Icon40@3x.png
│ │ │ │ ├── Icon40.png
│ │ │ │ ├── Icon60@2x.png
│ │ │ │ ├── Icon60@3x.png
│ │ │ │ ├── Icon76@2x.png
│ │ │ │ ├── Icon76.png
│ │ │ │ └── Icon83.5@2x.png
│ │ │ ├── background1.imageset
│ │ │ │ ├── background1.png
│ │ │ │ └── Contents.json
│ │ │ ├── background2.imageset
│ │ │ │ ├── background2.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat.imageset
│ │ │ │ ├── cat.png
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── enemy.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── enemy.png
│ │ │ ├── MainMenu.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── MainMenu.png
│ │ │ ├── YouLose.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── YouLose.png
│ │ │ ├── YouWin.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── YouWin.png
│ │ │ ├── zombie1.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie1.png
│ │ │ ├── zombie2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie2.png
│ │ │ ├── zombie3.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie3.png
│ │ │ └── zombie4.imageset
│ │ │ ├── Contents.json
│ │ │ └── zombie4.png
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── GameScene.swift
│ │ ├── GameViewController.swift
│ │ ├── Info.plist
│ │ ├── MyUtils.swift
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── hitCatLady.wav
│ │ ├── hitCat.wav
│ │ ├── lose.wav
│ │ └── win.wav
│ └── ZombieConga.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ └── contents.xcworkspacedata
├── 05-camera
│ ├── challenge
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameOverScene.swift
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── MainMenuScene.swift
│ │ │ ├── MyUtils.swift
│ │ │ └── Sounds
│ │ │ ├── backgroundMusic.mp3
│ │ │ ├── hitCatLady.wav
│ │ │ ├── hitCat.wav
│ │ │ ├── lose.wav
│ │ │ └── win.wav
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── final
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameOverScene.swift
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── MainMenuScene.swift
│ │ │ ├── MyUtils.swift
│ │ │ └── Sounds
│ │ │ ├── backgroundMusic.mp3
│ │ │ ├── hitCatLady.wav
│ │ │ ├── hitCat.wav
│ │ │ ├── lose.wav
│ │ │ └── win.wav
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ └── ZombieConga
│ ├── ZombieConga
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ ├── Icon20@2x.png
│ │ │ │ ├── Icon20@3x.png
│ │ │ │ ├── Icon20.png
│ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ ├── Icon29@2x.png
│ │ │ │ ├── Icon29@3x.png
│ │ │ │ ├── Icon29.png
│ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ ├── Icon40@2x.png
│ │ │ │ ├── Icon40@3x.png
│ │ │ │ ├── Icon40.png
│ │ │ │ ├── Icon60@2x.png
│ │ │ │ ├── Icon60@3x.png
│ │ │ │ ├── Icon76@2x.png
│ │ │ │ ├── Icon76.png
│ │ │ │ └── Icon83.5@2x.png
│ │ │ ├── background1.imageset
│ │ │ │ ├── background1.png
│ │ │ │ └── Contents.json
│ │ │ ├── background2.imageset
│ │ │ │ ├── background2.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat.imageset
│ │ │ │ ├── cat.png
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── enemy.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── enemy.png
│ │ │ ├── MainMenu.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── MainMenu.png
│ │ │ ├── YouLose.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── YouLose.png
│ │ │ ├── YouWin.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── YouWin.png
│ │ │ ├── zombie1.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie1.png
│ │ │ ├── zombie2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie2.png
│ │ │ ├── zombie3.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie3.png
│ │ │ └── zombie4.imageset
│ │ │ ├── Contents.json
│ │ │ └── zombie4.png
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── GameOverScene.swift
│ │ ├── GameScene.swift
│ │ ├── GameViewController.swift
│ │ ├── Info.plist
│ │ ├── MainMenuScene.swift
│ │ ├── MyUtils.swift
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── hitCatLady.wav
│ │ ├── hitCat.wav
│ │ ├── lose.wav
│ │ └── win.wav
│ └── ZombieConga.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ └── contents.xcworkspacedata
├── 06-labels
│ ├── challenge
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameOverScene.swift
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── GLIMSTIC.TTF
│ │ │ ├── Info.plist
│ │ │ ├── MainMenuScene.swift
│ │ │ ├── MyUtils.swift
│ │ │ └── Sounds
│ │ │ ├── backgroundMusic.mp3
│ │ │ ├── hitCatLady.wav
│ │ │ ├── hitCat.wav
│ │ │ ├── lose.wav
│ │ │ └── win.wav
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── final
│ │ ├── AvailableFonts
│ │ │ ├── AvailableFonts
│ │ │ │ ├── AppDelegate.swift
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Spaceship.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Spaceship.png
│ │ │ │ ├── Base.lproj
│ │ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ │ └── Main.storyboard
│ │ │ │ ├── GameScene.swift
│ │ │ │ ├── GameViewController.swift
│ │ │ │ └── Info.plist
│ │ │ └── AvailableFonts.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── ZombieConga
│ │ ├── ZombieConga
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── background1.imageset
│ │ │ │ │ ├── background1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── background2.imageset
│ │ │ │ │ ├── background2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat.imageset
│ │ │ │ │ ├── cat.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── enemy.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── enemy.png
│ │ │ │ ├── MainMenu.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── MainMenu.png
│ │ │ │ ├── YouLose.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouLose.png
│ │ │ │ ├── YouWin.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YouWin.png
│ │ │ │ ├── zombie1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie1.png
│ │ │ │ ├── zombie2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie2.png
│ │ │ │ ├── zombie3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── zombie3.png
│ │ │ │ └── zombie4.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie4.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameOverScene.swift
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── GLIMSTIC.TTF
│ │ │ ├── Info.plist
│ │ │ ├── MainMenuScene.swift
│ │ │ ├── MyUtils.swift
│ │ │ └── Sounds
│ │ │ ├── backgroundMusic.mp3
│ │ │ ├── hitCatLady.wav
│ │ │ ├── hitCat.wav
│ │ │ ├── lose.wav
│ │ │ └── win.wav
│ │ └── ZombieConga.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ ├── resources
│ │ ├── free.txt
│ │ └── GLIMSTIC.TTF
│ └── ZombieConga
│ ├── ZombieConga
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ ├── Icon20@2x.png
│ │ │ │ ├── Icon20@3x.png
│ │ │ │ ├── Icon20.png
│ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ ├── Icon29@2x.png
│ │ │ │ ├── Icon29@3x.png
│ │ │ │ ├── Icon29.png
│ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ ├── Icon40@2x.png
│ │ │ │ ├── Icon40@3x.png
│ │ │ │ ├── Icon40.png
│ │ │ │ ├── Icon60@2x.png
│ │ │ │ ├── Icon60@3x.png
│ │ │ │ ├── Icon76@2x.png
│ │ │ │ ├── Icon76.png
│ │ │ │ └── Icon83.5@2x.png
│ │ │ ├── background1.imageset
│ │ │ │ ├── background1.png
│ │ │ │ └── Contents.json
│ │ │ ├── background2.imageset
│ │ │ │ ├── background2.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat.imageset
│ │ │ │ ├── cat.png
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── enemy.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── enemy.png
│ │ │ ├── MainMenu.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── MainMenu.png
│ │ │ ├── YouLose.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── YouLose.png
│ │ │ ├── YouWin.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── YouWin.png
│ │ │ ├── zombie1.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie1.png
│ │ │ ├── zombie2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie2.png
│ │ │ ├── zombie3.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── zombie3.png
│ │ │ └── zombie4.imageset
│ │ │ ├── Contents.json
│ │ │ └── zombie4.png
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── GameOverScene.swift
│ │ ├── GameScene.swift
│ │ ├── GameViewController.swift
│ │ ├── Info.plist
│ │ ├── MainMenuScene.swift
│ │ ├── MyUtils.swift
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── hitCatLady.wav
│ │ ├── hitCat.wav
│ │ ├── lose.wav
│ │ └── win.wav
│ └── ZombieConga.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ └── contents.xcworkspacedata
├── 07-scene-editor
│ ├── challenge1
│ │ ├── CatNap
│ │ │ ├── Actions.sks
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83_5@2x.png
│ │ │ │ ├── background.imageset
│ │ │ │ │ ├── background.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_awake.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_bed.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_body_outline.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_curlup3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_eyes.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_head.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_mouth.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_new.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_sleepy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── cat_tail.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook_base.png
│ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook.png
│ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── ice.png
│ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame.png
│ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame-mask.png
│ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture.png
│ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_horizontal.png
│ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_horizontal.png
│ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_vert.png
│ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_vertical.png
│ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rope.png
│ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spring.png
│ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_horiz1.png
│ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_square.png
│ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_vert1.png
│ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_vert2.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Cat.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ └── Info.plist
│ │ ├── CatNap.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── lose.mp3
│ │ ├── mrreow.mp3
│ │ ├── pop.mp3
│ │ └── win.mp3
│ ├── challenge2
│ │ ├── CatNap
│ │ │ ├── Actions.sks
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83_5@2x.png
│ │ │ │ ├── background.imageset
│ │ │ │ │ ├── background.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_awake.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_bed.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_body_outline.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_curlup3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_eyes.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_head.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_mouth.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_new.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_sleepy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── cat_tail.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook_base.png
│ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook.png
│ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── ice.png
│ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame.png
│ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame-mask.png
│ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture.png
│ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_horizontal.png
│ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_horizontal.png
│ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_vert.png
│ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_vertical.png
│ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rope.png
│ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spring.png
│ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_horiz1.png
│ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_square.png
│ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_vert1.png
│ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_vert2.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── CatCurl.sks
│ │ │ ├── Cat.sks
│ │ │ ├── CatWakeUp.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ └── Info.plist
│ │ ├── CatNap.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── lose.mp3
│ │ ├── mrreow.mp3
│ │ ├── pop.mp3
│ │ └── win.mp3
│ ├── final
│ │ ├── CatNap
│ │ │ ├── Actions.sks
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83_5@2x.png
│ │ │ │ ├── background.imageset
│ │ │ │ │ ├── background.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_awake.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_bed.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_body_outline.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_curlup3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_eyes.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_head.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_mouth.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_new.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_sleepy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── cat_tail.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook_base.png
│ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook.png
│ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── ice.png
│ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame.png
│ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame-mask.png
│ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture.png
│ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_horizontal.png
│ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_horizontal.png
│ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_vert.png
│ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_vertical.png
│ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rope.png
│ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spring.png
│ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_horiz1.png
│ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_square.png
│ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_vert1.png
│ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_vert2.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Cat.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ └── Info.plist
│ │ ├── CatNap.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── lose.mp3
│ │ ├── mrreow.mp3
│ │ ├── pop.mp3
│ │ └── win.mp3
│ └── starter
│ └── Resources
│ ├── Icons
│ │ ├── iOS
│ │ │ ├── Icon29@2x.png
│ │ │ ├── Icon29@3x.png
│ │ │ ├── Icon29.png
│ │ │ ├── Icon40@2x.png
│ │ │ ├── Icon40@3x.png
│ │ │ ├── Icon40.png
│ │ │ ├── Icon60@2x.png
│ │ │ ├── Icon60@3x.png
│ │ │ ├── Icon76@2x.png
│ │ │ ├── Icon76.png
│ │ │ └── Icon83_5@2x.png
│ │ └── iTunes
│ │ ├── iTunesArtwork@2x.png
│ │ └── iTunesArtwork.png
│ ├── Images
│ │ ├── background.png
│ │ ├── cat_awake.png
│ │ ├── cat_bed.png
│ │ ├── cat_body_outline.png
│ │ ├── cat_body.png
│ │ ├── cat_curlup1.png
│ │ ├── cat_curlup2.png
│ │ ├── cat_curlup3.png
│ │ ├── cat_eyes1.png
│ │ ├── cat_eyes2.png
│ │ ├── cat_eyes.png
│ │ ├── cat_head.png
│ │ ├── cat_mouth.png
│ │ ├── cat_new.png
│ │ ├── cat_sleepy.png
│ │ ├── cat_tail.png
│ │ ├── hook_base.png
│ │ ├── hook.png
│ │ ├── ice.png
│ │ ├── picture-frame-mask.png
│ │ ├── picture-frame.png
│ │ ├── picture.png
│ │ ├── rock_horizontal.png
│ │ ├── rock_L_horizontal.png
│ │ ├── rock_L_vert.png
│ │ ├── rock_vertical.png
│ │ ├── rope.png
│ │ ├── spring.png
│ │ ├── wood_horiz1.png
│ │ ├── wood_square.png
│ │ ├── wood_vert1.png
│ │ └── wood_vert2.png
│ └── Sounds
│ ├── backgroundMusic.mp3
│ ├── lose.mp3
│ ├── mrreow.mp3
│ ├── pop.mp3
│ └── win.mp3
├── 08-beginning-physics
│ ├── challenge1
│ │ └── SpriteKitPhysicsTest.playground
│ │ ├── Contents.swift
│ │ ├── contents.xcplayground
│ │ ├── playground.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ ├── Resources
│ │ │ ├── circle.png
│ │ │ ├── L.png
│ │ │ ├── sand.png
│ │ │ ├── square.png
│ │ │ └── triangle.png
│ │ ├── Sources
│ │ │ └── SupportCode.swift
│ │ └── timeline.xctimeline
│ ├── challenge2
│ │ └── SpriteKitPhysicsTest.playground
│ │ ├── Contents.swift
│ │ ├── contents.xcplayground
│ │ ├── playground.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ ├── Resources
│ │ │ ├── circle.png
│ │ │ ├── L.png
│ │ │ ├── sand.png
│ │ │ ├── square.png
│ │ │ └── triangle.png
│ │ ├── Sources
│ │ │ └── SupportCode.swift
│ │ └── timeline.xctimeline
│ ├── final
│ │ └── SpriteKitPhysicsTest.playground
│ │ ├── Contents.swift
│ │ ├── contents.xcplayground
│ │ ├── playground.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ ├── Resources
│ │ │ ├── circle.png
│ │ │ ├── L.png
│ │ │ ├── sand.png
│ │ │ ├── square.png
│ │ │ └── triangle.png
│ │ └── Sources
│ │ └── SupportCode.swift
│ └── starter
│ └── Resources
│ └── Shapes
│ ├── circle.png
│ ├── L.png
│ ├── sand.png
│ ├── square.png
│ └── triangle.png
├── 09-intermediate-physics
│ ├── challenge1
│ │ ├── CatNap
│ │ │ ├── Actions.sks
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83_5@2x.png
│ │ │ │ ├── background.imageset
│ │ │ │ │ ├── background.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_awake.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_bed.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_body_outline.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_curlup3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_eyes.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_head.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_mouth.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_new.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_sleepy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── cat_tail.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook_base.png
│ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook.png
│ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── ice.png
│ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame.png
│ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame-mask.png
│ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture.png
│ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_horizontal.png
│ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_horizontal.png
│ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_vert.png
│ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_vertical.png
│ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rope.png
│ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spring.png
│ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_horiz1.png
│ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_square.png
│ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_vert1.png
│ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_vert2.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── BedNode.swift
│ │ │ ├── BlockNode.swift
│ │ │ ├── CatCurl.sks
│ │ │ ├── CatNode.swift
│ │ │ ├── Cat.sks
│ │ │ ├── CatWakeUp.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── MessageNode.swift
│ │ │ └── SKTUtils
│ │ │ ├── CGFloat+Extensions.swift
│ │ │ ├── CGPoint+Extensions.swift
│ │ │ ├── CGVector+Extensions.swift
│ │ │ ├── Int+Extensions.swift
│ │ │ ├── SKAction+Extensions.swift
│ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ ├── SKColor+Extensions.swift
│ │ │ ├── SKNode+Extensions.swift
│ │ │ ├── SKTAudio.swift
│ │ │ ├── SKTEffects.swift
│ │ │ ├── SKTTimingFunctions.swift
│ │ │ └── Vector3.swift
│ │ ├── CatNap.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── lose.mp3
│ │ ├── mrreow.mp3
│ │ ├── pop.mp3
│ │ └── win.mp3
│ ├── final
│ │ ├── CatNap
│ │ │ ├── Actions.sks
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83_5@2x.png
│ │ │ │ ├── background.imageset
│ │ │ │ │ ├── background.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_awake.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_bed.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_body_outline.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_curlup3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_eyes.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_head.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_mouth.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_new.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_sleepy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── cat_tail.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook_base.png
│ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook.png
│ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── ice.png
│ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame.png
│ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame-mask.png
│ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture.png
│ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_horizontal.png
│ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_horizontal.png
│ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_vert.png
│ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_vertical.png
│ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rope.png
│ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spring.png
│ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_horiz1.png
│ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_square.png
│ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_vert1.png
│ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_vert2.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── BedNode.swift
│ │ │ ├── BlockNode.swift
│ │ │ ├── CatCurl.sks
│ │ │ ├── CatNode.swift
│ │ │ ├── Cat.sks
│ │ │ ├── CatWakeUp.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── MessageNode.swift
│ │ │ └── SKTUtils
│ │ │ ├── CGFloat+Extensions.swift
│ │ │ ├── CGPoint+Extensions.swift
│ │ │ ├── CGVector+Extensions.swift
│ │ │ ├── Int+Extensions.swift
│ │ │ ├── SKAction+Extensions.swift
│ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ ├── SKColor+Extensions.swift
│ │ │ ├── SKNode+Extensions.swift
│ │ │ ├── SKTAudio.swift
│ │ │ ├── SKTEffects.swift
│ │ │ ├── SKTTimingFunctions.swift
│ │ │ └── Vector3.swift
│ │ ├── CatNap.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── lose.mp3
│ │ ├── mrreow.mp3
│ │ ├── pop.mp3
│ │ └── win.mp3
│ └── starter
│ ├── CatNap
│ │ ├── Actions.sks
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ ├── Icon29@2x.png
│ │ │ │ ├── Icon29@3x.png
│ │ │ │ ├── Icon29.png
│ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ ├── Icon40@2x.png
│ │ │ │ ├── Icon40@3x.png
│ │ │ │ ├── Icon40.png
│ │ │ │ ├── Icon60@2x.png
│ │ │ │ ├── Icon60@3x.png
│ │ │ │ ├── Icon76@2x.png
│ │ │ │ ├── Icon76.png
│ │ │ │ └── Icon83_5@2x.png
│ │ │ ├── background.imageset
│ │ │ │ ├── background.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_awake.imageset
│ │ │ │ ├── cat_awake.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_bed.imageset
│ │ │ │ ├── cat_bed.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_body.imageset
│ │ │ │ ├── cat_body.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_body_outline.imageset
│ │ │ │ ├── cat_body_outline.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_curlup1.imageset
│ │ │ │ ├── cat_curlup1.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_curlup2.imageset
│ │ │ │ ├── cat_curlup2.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_curlup3.imageset
│ │ │ │ ├── cat_curlup3.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_eyes1.imageset
│ │ │ │ ├── cat_eyes1.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_eyes2.imageset
│ │ │ │ ├── cat_eyes2.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_eyes.imageset
│ │ │ │ ├── cat_eyes.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_head.imageset
│ │ │ │ ├── cat_head.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_mouth.imageset
│ │ │ │ ├── cat_mouth.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_new.imageset
│ │ │ │ ├── cat_new.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_sleepy.imageset
│ │ │ │ ├── cat_sleepy.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_tail.imageset
│ │ │ │ ├── cat_tail.png
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── hook_base.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── hook_base.png
│ │ │ ├── hook.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── hook.png
│ │ │ ├── ice.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── ice.png
│ │ │ ├── picture-frame.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── picture-frame.png
│ │ │ ├── picture-frame-mask.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── picture-frame-mask.png
│ │ │ ├── picture.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── picture.png
│ │ │ ├── rock_horizontal.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── rock_horizontal.png
│ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── rock_L_horizontal.png
│ │ │ ├── rock_L_vert.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── rock_L_vert.png
│ │ │ ├── rock_vertical.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── rock_vertical.png
│ │ │ ├── rope.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── rope.png
│ │ │ ├── spring.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── spring.png
│ │ │ ├── wood_horiz1.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_horiz1.png
│ │ │ ├── wood_square.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_square.png
│ │ │ ├── wood_vert1.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_vert1.png
│ │ │ └── wood_vert2.imageset
│ │ │ ├── Contents.json
│ │ │ └── wood_vert2.png
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── CatCurl.sks
│ │ ├── Cat.sks
│ │ ├── CatWakeUp.sks
│ │ ├── GameScene.sks
│ │ ├── GameScene.swift
│ │ ├── GameViewController.swift
│ │ └── Info.plist
│ ├── CatNap.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── Sounds
│ ├── backgroundMusic.mp3
│ ├── lose.mp3
│ ├── mrreow.mp3
│ ├── pop.mp3
│ └── win.mp3
├── 10-advanced-physics
│ ├── challenge1
│ │ ├── CatNap
│ │ │ ├── Actions.sks
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83_5@2x.png
│ │ │ │ ├── background.imageset
│ │ │ │ │ ├── background.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_awake.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_bed.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_body_outline.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_curlup3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_eyes.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_head.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_mouth.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_new.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_sleepy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── cat_tail.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook_base.png
│ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook.png
│ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── ice.png
│ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame.png
│ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame-mask.png
│ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture.png
│ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_horizontal.png
│ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_horizontal.png
│ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_vert.png
│ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_vertical.png
│ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rope.png
│ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spring.png
│ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_horiz1.png
│ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_square.png
│ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_vert1.png
│ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_vert2.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── BedNode.swift
│ │ │ ├── BlockNode.swift
│ │ │ ├── CatCurl.sks
│ │ │ ├── CatNode.swift
│ │ │ ├── Cat.sks
│ │ │ ├── CatWakeUp.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── HookBaseNode.swift
│ │ │ ├── Info.plist
│ │ │ ├── Level1.sks
│ │ │ ├── Level2.sks
│ │ │ ├── Level3.sks
│ │ │ ├── Level4.sks
│ │ │ ├── MessageNode.swift
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ ├── SpringNode.swift
│ │ │ └── StoneNode.swift
│ │ ├── CatNap.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── lose.mp3
│ │ ├── mrreow.mp3
│ │ ├── pop.mp3
│ │ └── win.mp3
│ ├── final
│ │ ├── CatNap
│ │ │ ├── Actions.sks
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83_5@2x.png
│ │ │ │ ├── background.imageset
│ │ │ │ │ ├── background.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_awake.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_bed.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_body_outline.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_curlup3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_eyes.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_head.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_mouth.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_new.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_sleepy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── cat_tail.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook_base.png
│ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook.png
│ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── ice.png
│ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame.png
│ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame-mask.png
│ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture.png
│ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_horizontal.png
│ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_horizontal.png
│ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_vert.png
│ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_vertical.png
│ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rope.png
│ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spring.png
│ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_horiz1.png
│ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_square.png
│ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_vert1.png
│ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_vert2.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── BedNode.swift
│ │ │ ├── BlockNode.swift
│ │ │ ├── CatCurl.sks
│ │ │ ├── CatNode.swift
│ │ │ ├── Cat.sks
│ │ │ ├── CatWakeUp.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── HookBaseNode.swift
│ │ │ ├── Info.plist
│ │ │ ├── Level1.sks
│ │ │ ├── Level2.sks
│ │ │ ├── Level3.sks
│ │ │ ├── MessageNode.swift
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ ├── SpringNode.swift
│ │ │ └── StoneNode.swift
│ │ ├── CatNap.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── lose.mp3
│ │ ├── mrreow.mp3
│ │ ├── pop.mp3
│ │ └── win.mp3
│ └── starter
│ ├── CatNap
│ │ ├── Actions.sks
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ ├── Icon29@2x.png
│ │ │ │ ├── Icon29@3x.png
│ │ │ │ ├── Icon29.png
│ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ ├── Icon40@2x.png
│ │ │ │ ├── Icon40@3x.png
│ │ │ │ ├── Icon40.png
│ │ │ │ ├── Icon60@2x.png
│ │ │ │ ├── Icon60@3x.png
│ │ │ │ ├── Icon76@2x.png
│ │ │ │ ├── Icon76.png
│ │ │ │ └── Icon83_5@2x.png
│ │ │ ├── background.imageset
│ │ │ │ ├── background.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_awake.imageset
│ │ │ │ ├── cat_awake.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_bed.imageset
│ │ │ │ ├── cat_bed.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_body.imageset
│ │ │ │ ├── cat_body.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_body_outline.imageset
│ │ │ │ ├── cat_body_outline.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_curlup1.imageset
│ │ │ │ ├── cat_curlup1.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_curlup2.imageset
│ │ │ │ ├── cat_curlup2.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_curlup3.imageset
│ │ │ │ ├── cat_curlup3.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_eyes1.imageset
│ │ │ │ ├── cat_eyes1.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_eyes2.imageset
│ │ │ │ ├── cat_eyes2.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_eyes.imageset
│ │ │ │ ├── cat_eyes.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_head.imageset
│ │ │ │ ├── cat_head.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_mouth.imageset
│ │ │ │ ├── cat_mouth.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_new.imageset
│ │ │ │ ├── cat_new.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_sleepy.imageset
│ │ │ │ ├── cat_sleepy.png
│ │ │ │ └── Contents.json
│ │ │ ├── cat_tail.imageset
│ │ │ │ ├── cat_tail.png
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── hook_base.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── hook_base.png
│ │ │ ├── hook.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── hook.png
│ │ │ ├── ice.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── ice.png
│ │ │ ├── picture-frame.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── picture-frame.png
│ │ │ ├── picture-frame-mask.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── picture-frame-mask.png
│ │ │ ├── picture.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── picture.png
│ │ │ ├── rock_horizontal.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── rock_horizontal.png
│ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── rock_L_horizontal.png
│ │ │ ├── rock_L_vert.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── rock_L_vert.png
│ │ │ ├── rock_vertical.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── rock_vertical.png
│ │ │ ├── rope.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── rope.png
│ │ │ ├── spring.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── spring.png
│ │ │ ├── wood_horiz1.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_horiz1.png
│ │ │ ├── wood_square.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_square.png
│ │ │ ├── wood_vert1.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_vert1.png
│ │ │ └── wood_vert2.imageset
│ │ │ ├── Contents.json
│ │ │ └── wood_vert2.png
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── BedNode.swift
│ │ ├── BlockNode.swift
│ │ ├── CatCurl.sks
│ │ ├── CatNode.swift
│ │ ├── Cat.sks
│ │ ├── CatWakeUp.sks
│ │ ├── GameScene.sks
│ │ ├── GameScene.swift
│ │ ├── GameViewController.swift
│ │ ├── Info.plist
│ │ ├── MessageNode.swift
│ │ └── SKTUtils
│ │ ├── CGFloat+Extensions.swift
│ │ ├── CGPoint+Extensions.swift
│ │ ├── CGVector+Extensions.swift
│ │ ├── Int+Extensions.swift
│ │ ├── SKAction+Extensions.swift
│ │ ├── SKAction+SpecialEffects.swift
│ │ ├── SKColor+Extensions.swift
│ │ ├── SKNode+Extensions.swift
│ │ ├── SKTAudio.swift
│ │ ├── SKTEffects.swift
│ │ ├── SKTTimingFunctions.swift
│ │ └── Vector3.swift
│ ├── CatNap.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── Sounds
│ ├── backgroundMusic.mp3
│ ├── lose.mp3
│ ├── mrreow.mp3
│ ├── pop.mp3
│ └── win.mp3
├── 11-crop-video-shape-nodes
│ ├── challenge1
│ │ ├── CatNap
│ │ │ ├── Actions.sks
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83_5@2x.png
│ │ │ │ ├── background.imageset
│ │ │ │ │ ├── background.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_awake.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_bed.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_body_outline.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_curlup3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_eyes.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_head.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_mouth.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_new.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_sleepy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── cat_tail.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── discoball1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── discoball1.png
│ │ │ │ ├── discoball2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── discoball2.png
│ │ │ │ ├── discoball3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── discoball3.png
│ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook_base.png
│ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook.png
│ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── ice.png
│ │ │ │ ├── iron_square.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── iron_square.png
│ │ │ │ ├── iron_vert2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── iron_vert2.png
│ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame.png
│ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame-mask.png
│ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture.png
│ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_horizontal.png
│ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_horizontal.png
│ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_vert.png
│ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_vertical.png
│ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rope.png
│ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spring.png
│ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_horiz1.png
│ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_square.png
│ │ │ │ ├── wood_tinted.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_tinted.png
│ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_vert1.png
│ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_vert2.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── BedNode.swift
│ │ │ ├── BlockNode.swift
│ │ │ ├── CatCurl.sks
│ │ │ ├── CatNode.swift
│ │ │ ├── Cat.sks
│ │ │ ├── CatWakeUp.sks
│ │ │ ├── DiscoBallNode.swift
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── HintNode.swift
│ │ │ ├── HookBaseNode.swift
│ │ │ ├── Info.plist
│ │ │ ├── Level1.sks
│ │ │ ├── Level2.sks
│ │ │ ├── Level3.sks
│ │ │ ├── Level4.sks
│ │ │ ├── Level5.sks
│ │ │ ├── Level6.sks
│ │ │ ├── MessageNode.swift
│ │ │ ├── PictureNode.swift
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ ├── SpringNode.swift
│ │ │ └── StoneNode.swift
│ │ ├── CatNap.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── lose.mp3
│ │ ├── media
│ │ │ ├── discolights-loop.mov
│ │ │ └── disco-sound.m4a
│ │ ├── mrreow.mp3
│ │ ├── pop.mp3
│ │ └── win.mp3
│ ├── challenge2
│ │ ├── CatNap
│ │ │ ├── Actions.sks
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83_5@2x.png
│ │ │ │ ├── background.imageset
│ │ │ │ │ ├── background.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_awake.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_bed.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_body_outline.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_curlup3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_eyes.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_head.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_mouth.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_new.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_sleepy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── cat_tail.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── discoball1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── discoball1.png
│ │ │ │ ├── discoball2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── discoball2.png
│ │ │ │ ├── discoball3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── discoball3.png
│ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook_base.png
│ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook.png
│ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── ice.png
│ │ │ │ ├── iron_square.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── iron_square.png
│ │ │ │ ├── iron_vert2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── iron_vert2.png
│ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame.png
│ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame-mask.png
│ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture.png
│ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_horizontal.png
│ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_horizontal.png
│ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_vert.png
│ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_vertical.png
│ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rope.png
│ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spring.png
│ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_horiz1.png
│ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_square.png
│ │ │ │ ├── wood_tinted.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_tinted.png
│ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_vert1.png
│ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_vert2.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── BedNode.swift
│ │ │ ├── BlockNode.swift
│ │ │ ├── CatCurl.sks
│ │ │ ├── CatNode.swift
│ │ │ ├── Cat.sks
│ │ │ ├── CatWakeUp.sks
│ │ │ ├── DiscoBallNode.swift
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── HintNode.swift
│ │ │ ├── HookBaseNode.swift
│ │ │ ├── Info.plist
│ │ │ ├── Level1.sks
│ │ │ ├── Level2.sks
│ │ │ ├── Level3.sks
│ │ │ ├── Level4.sks
│ │ │ ├── Level5.sks
│ │ │ ├── Level6.sks
│ │ │ ├── MessageNode.swift
│ │ │ ├── PictureNode.swift
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ ├── SpringNode.swift
│ │ │ └── StoneNode.swift
│ │ ├── CatNap.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── lose.mp3
│ │ ├── media
│ │ │ ├── discolights-loop.mov
│ │ │ └── disco-sound.m4a
│ │ ├── mrreow.mp3
│ │ ├── pop.mp3
│ │ └── win.mp3
│ ├── final
│ │ ├── CatNap
│ │ │ ├── Actions.sks
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83_5@2x.png
│ │ │ │ ├── background.imageset
│ │ │ │ │ ├── background.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_awake.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_bed.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_body_outline.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_curlup3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_eyes.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_head.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_mouth.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_new.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_sleepy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── cat_tail.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── discoball1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── discoball1.png
│ │ │ │ ├── discoball2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── discoball2.png
│ │ │ │ ├── discoball3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── discoball3.png
│ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook_base.png
│ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook.png
│ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── ice.png
│ │ │ │ ├── iron_square.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── iron_square.png
│ │ │ │ ├── iron_vert2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── iron_vert2.png
│ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame.png
│ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame-mask.png
│ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture.png
│ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_horizontal.png
│ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_horizontal.png
│ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_vert.png
│ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_vertical.png
│ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rope.png
│ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spring.png
│ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_horiz1.png
│ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_square.png
│ │ │ │ ├── wood_tinted.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_tinted.png
│ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_vert1.png
│ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_vert2.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── BedNode.swift
│ │ │ ├── BlockNode.swift
│ │ │ ├── CatCurl.sks
│ │ │ ├── CatNode.swift
│ │ │ ├── Cat.sks
│ │ │ ├── CatWakeUp.sks
│ │ │ ├── DiscoBallNode.swift
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── HintNode.swift
│ │ │ ├── HookBaseNode.swift
│ │ │ ├── Info.plist
│ │ │ ├── Level1.sks
│ │ │ ├── Level2.sks
│ │ │ ├── Level3.sks
│ │ │ ├── Level4.sks
│ │ │ ├── Level5.sks
│ │ │ ├── Level6.sks
│ │ │ ├── MessageNode.swift
│ │ │ ├── PictureNode.swift
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ ├── SpringNode.swift
│ │ │ └── StoneNode.swift
│ │ ├── CatNap.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── lose.mp3
│ │ ├── media
│ │ │ ├── discolights-loop.mov
│ │ │ └── disco-sound.m4a
│ │ ├── mrreow.mp3
│ │ ├── pop.mp3
│ │ └── win.mp3
│ └── starter
│ ├── CatNap
│ │ ├── CatNap
│ │ │ ├── Actions.sks
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83_5@2x.png
│ │ │ │ ├── background.imageset
│ │ │ │ │ ├── background.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_awake.imageset
│ │ │ │ │ ├── cat_awake.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_bed.imageset
│ │ │ │ │ ├── cat_bed.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body.imageset
│ │ │ │ │ ├── cat_body.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_body_outline.imageset
│ │ │ │ │ ├── cat_body_outline.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup1.imageset
│ │ │ │ │ ├── cat_curlup1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup2.imageset
│ │ │ │ │ ├── cat_curlup2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_curlup3.imageset
│ │ │ │ │ ├── cat_curlup3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes1.imageset
│ │ │ │ │ ├── cat_eyes1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes2.imageset
│ │ │ │ │ ├── cat_eyes2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_eyes.imageset
│ │ │ │ │ ├── cat_eyes.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_head.imageset
│ │ │ │ │ ├── cat_head.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_mouth.imageset
│ │ │ │ │ ├── cat_mouth.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_new.imageset
│ │ │ │ │ ├── cat_new.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_sleepy.imageset
│ │ │ │ │ ├── cat_sleepy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── cat_tail.imageset
│ │ │ │ │ ├── cat_tail.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── hook_base.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook_base.png
│ │ │ │ ├── hook.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── hook.png
│ │ │ │ ├── ice.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── ice.png
│ │ │ │ ├── picture-frame.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame.png
│ │ │ │ ├── picture-frame-mask.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture-frame-mask.png
│ │ │ │ ├── picture.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── picture.png
│ │ │ │ ├── rock_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_horizontal.png
│ │ │ │ ├── rock_L_horizontal.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_horizontal.png
│ │ │ │ ├── rock_L_vert.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_L_vert.png
│ │ │ │ ├── rock_vertical.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rock_vertical.png
│ │ │ │ ├── rope.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── rope.png
│ │ │ │ ├── spring.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spring.png
│ │ │ │ ├── wood_horiz1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_horiz1.png
│ │ │ │ ├── wood_square.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_square.png
│ │ │ │ ├── wood_vert1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wood_vert1.png
│ │ │ │ └── wood_vert2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wood_vert2.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── BedNode.swift
│ │ │ ├── BlockNode.swift
│ │ │ ├── CatCurl.sks
│ │ │ ├── CatNode.swift
│ │ │ ├── Cat.sks
│ │ │ ├── CatWakeUp.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── HookBaseNode.swift
│ │ │ ├── Info.plist
│ │ │ ├── Level1.sks
│ │ │ ├── Level2.sks
│ │ │ ├── Level3.sks
│ │ │ ├── Level4.sks
│ │ │ ├── MessageNode.swift
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ ├── SpringNode.swift
│ │ │ └── StoneNode.swift
│ │ ├── CatNap.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── Sounds
│ │ ├── backgroundMusic.mp3
│ │ ├── lose.mp3
│ │ ├── mrreow.mp3
│ │ ├── pop.mp3
│ │ └── win.mp3
│ └── resources
│ ├── levels
│ │ ├── Level5.sks
│ │ └── Level6.sks
│ ├── media
│ │ ├── discolights-loop.mov
│ │ └── disco-sound.m4a
│ └── textures
│ ├── discoball1.png
│ ├── discoball2.png
│ ├── discoball3.png
│ ├── iron_square.png
│ ├── iron_vert2.png
│ └── wood_tinted.png
├── 12-beginning-tile-maps
│ ├── challenge
│ │ ├── challenge1
│ │ │ └── PestControl
│ │ │ ├── PestControl
│ │ │ │ ├── Animatable.swift
│ │ │ │ ├── AppDelegate.swift
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ │ ├── Icon29.png
│ │ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ │ ├── Icon40.png
│ │ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ │ ├── Icon76.png
│ │ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── grass1.png
│ │ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── grass2.png
│ │ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── grass3.png
│ │ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── water_center.png
│ │ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── water_down_edge.png
│ │ │ │ │ │ ├── water.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── water.png
│ │ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── water_left_edge.png
│ │ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── water_lower_left_corner.png
│ │ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── water_lower_left_edge.png
│ │ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── water_lower_right_corner.png
│ │ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── water_lower_right_edge.png
│ │ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── water_right_edge.png
│ │ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── water_up_edge.png
│ │ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── water_upper_left_corner.png
│ │ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── water_upper_left_edge.png
│ │ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── water_upper_right_corner.png
│ │ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_right_edge.png
│ │ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ │ │ ├── bug_bk1.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ │ │ ├── bug_bk2.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ │ │ ├── bug_ft1.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ │ │ ├── bug_ft2.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ │ │ ├── bug_lt1.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ │ │ ├── bug_lt2.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── firebug.png
│ │ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player_bk1.png
│ │ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player_bk2.png
│ │ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player_ft1.png
│ │ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player_ft2.png
│ │ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player_lt1.png
│ │ │ │ │ │ └── player_lt2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_lt2.png
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Scenery.spriteatlas
│ │ │ │ │ ├── bugspray.imageset
│ │ │ │ │ │ ├── bugspray.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── stone.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── stone.png
│ │ │ │ │ ├── tree.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── tree.png
│ │ │ │ │ ├── tree-stump.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── tree-stump.png
│ │ │ │ │ ├── tree-top.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── tree-top.png
│ │ │ │ │ ├── wall-broken.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── wall-broken.png
│ │ │ │ │ ├── wall-cracked.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── wall-cracked.png
│ │ │ │ │ └── wall.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wall.png
│ │ │ │ ├── Base.lproj
│ │ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ │ └── Main.storyboard
│ │ │ │ ├── Extensions.swift
│ │ │ │ ├── GameScene.sks
│ │ │ │ ├── GameScene.swift
│ │ │ │ ├── GameViewController.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── Player.swift
│ │ │ │ ├── SKTUtils
│ │ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ │ ├── Int+Extensions.swift
│ │ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ │ ├── SKTAudio.swift
│ │ │ │ │ ├── SKTEffects.swift
│ │ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ │ └── Vector3.swift
│ │ │ │ ├── TileSets.sks
│ │ │ │ └── Types.swift
│ │ │ └── PestControl.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── challenge2
│ │ └── PestControl
│ │ ├── PestControl
│ │ │ ├── Animatable.swift
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass1.png
│ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass2.png
│ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass3.png
│ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_center.png
│ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_down_edge.png
│ │ │ │ │ ├── water.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water.png
│ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_left_edge.png
│ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_left_corner.png
│ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_left_edge.png
│ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_right_corner.png
│ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_right_edge.png
│ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_right_edge.png
│ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_up_edge.png
│ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_left_corner.png
│ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_left_edge.png
│ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_right_corner.png
│ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_right_edge.png
│ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ │ ├── bug_bk1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ │ ├── bug_bk2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ │ ├── bug_ft1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ │ ├── bug_ft2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ │ ├── bug_lt1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ │ ├── bug_lt2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── firebug.png
│ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_bk1.png
│ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_bk2.png
│ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_ft1.png
│ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_ft2.png
│ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_lt1.png
│ │ │ │ │ └── player_lt2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_lt2.png
│ │ │ │ ├── Contents.json
│ │ │ │ └── Scenery.spriteatlas
│ │ │ │ ├── bugspray.imageset
│ │ │ │ │ ├── bugspray.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── stone.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── stone.png
│ │ │ │ ├── tree.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree.png
│ │ │ │ ├── tree-stump.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree-stump.png
│ │ │ │ ├── tree-top.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree-top.png
│ │ │ │ ├── wall-broken.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wall-broken.png
│ │ │ │ ├── wall-cracked.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wall-cracked.png
│ │ │ │ └── wall.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wall.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Bug.swift
│ │ │ ├── Extensions.swift
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── Player.swift
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ ├── TileSets.sks
│ │ │ └── Types.swift
│ │ └── PestControl.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── final
│ │ └── PestControl
│ │ ├── PestControl
│ │ │ ├── Animatable.swift
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass1.png
│ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass2.png
│ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass3.png
│ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_center.png
│ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_down_edge.png
│ │ │ │ │ ├── water.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water.png
│ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_left_edge.png
│ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_left_corner.png
│ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_left_edge.png
│ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_right_corner.png
│ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_right_edge.png
│ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_right_edge.png
│ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_up_edge.png
│ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_left_corner.png
│ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_left_edge.png
│ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_right_corner.png
│ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_right_edge.png
│ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ │ ├── bug_bk1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ │ ├── bug_bk2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ │ ├── bug_ft1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ │ ├── bug_ft2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ │ ├── bug_lt1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ │ ├── bug_lt2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── firebug.png
│ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_bk1.png
│ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_bk2.png
│ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_ft1.png
│ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_ft2.png
│ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_lt1.png
│ │ │ │ │ └── player_lt2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_lt2.png
│ │ │ │ ├── Contents.json
│ │ │ │ └── Scenery.spriteatlas
│ │ │ │ ├── bugspray.imageset
│ │ │ │ │ ├── bugspray.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── stone.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── stone.png
│ │ │ │ ├── tree.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree.png
│ │ │ │ ├── tree-stump.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree-stump.png
│ │ │ │ ├── tree-top.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree-top.png
│ │ │ │ ├── wall-broken.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wall-broken.png
│ │ │ │ ├── wall-cracked.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wall-cracked.png
│ │ │ │ └── wall.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wall.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Extensions.swift
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── Player.swift
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ ├── TileSets.sks
│ │ │ └── Types.swift
│ │ └── PestControl.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ └── PestControl
│ ├── PestControl
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ ├── Icon29@2x.png
│ │ │ │ ├── Icon29@3x.png
│ │ │ │ ├── Icon29.png
│ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ ├── Icon40@2x.png
│ │ │ │ ├── Icon40@3x.png
│ │ │ │ ├── Icon40.png
│ │ │ │ ├── Icon60@2x.png
│ │ │ │ ├── Icon60@3x.png
│ │ │ │ ├── Icon76@2x.png
│ │ │ │ ├── Icon76.png
│ │ │ │ └── Icon83.5@2x.png
│ │ │ ├── Background.spriteatlas
│ │ │ │ ├── Contents.json
│ │ │ │ ├── grass1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── grass1.png
│ │ │ │ ├── grass2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── grass2.png
│ │ │ │ ├── grass3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── grass3.png
│ │ │ │ ├── water_center.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_center.png
│ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_down_edge.png
│ │ │ │ ├── water.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water.png
│ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_left_edge.png
│ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_lower_left_corner.png
│ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_lower_left_edge.png
│ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_lower_right_corner.png
│ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_lower_right_edge.png
│ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_right_edge.png
│ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_up_edge.png
│ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_left_corner.png
│ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_left_edge.png
│ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_right_corner.png
│ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── water_upper_right_edge.png
│ │ │ ├── Characters.spriteatlas
│ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ ├── bug_bk1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ ├── bug_bk2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ ├── bug_ft1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ ├── bug_ft2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ ├── bug_lt1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ ├── bug_lt2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── firebug.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── firebug.png
│ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_bk1.png
│ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_bk2.png
│ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_ft1.png
│ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_ft2.png
│ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_lt1.png
│ │ │ │ └── player_lt2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── player_lt2.png
│ │ │ ├── Contents.json
│ │ │ └── Scenery.spriteatlas
│ │ │ ├── bugspray.imageset
│ │ │ │ ├── bugspray.png
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── stone.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── stone.png
│ │ │ ├── tree.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── tree.png
│ │ │ ├── tree-stump.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── tree-stump.png
│ │ │ ├── tree-top.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── tree-top.png
│ │ │ ├── wall-broken.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wall-broken.png
│ │ │ ├── wall-cracked.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wall-cracked.png
│ │ │ └── wall.imageset
│ │ │ ├── Contents.json
│ │ │ └── wall.png
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── GameScene.sks
│ │ ├── GameScene.swift
│ │ ├── GameViewController.swift
│ │ ├── Info.plist
│ │ └── SKTUtils
│ │ ├── CGFloat+Extensions.swift
│ │ ├── CGPoint+Extensions.swift
│ │ ├── CGVector+Extensions.swift
│ │ ├── Int+Extensions.swift
│ │ ├── SKAction+Extensions.swift
│ │ ├── SKAction+SpecialEffects.swift
│ │ ├── SKColor+Extensions.swift
│ │ ├── SKNode+Extensions.swift
│ │ ├── SKTAudio.swift
│ │ ├── SKTEffects.swift
│ │ ├── SKTTimingFunctions.swift
│ │ └── Vector3.swift
│ └── PestControl.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ └── contents.xcworkspacedata
├── 13-intermediate-tile-maps
│ ├── challenge
│ │ └── PestControl
│ │ ├── PestControl
│ │ │ ├── Animatable.swift
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass1.png
│ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass2.png
│ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass3.png
│ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_center.png
│ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_down_edge.png
│ │ │ │ │ ├── water.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water.png
│ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_left_edge.png
│ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_left_corner.png
│ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_left_edge.png
│ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_right_corner.png
│ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_right_edge.png
│ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_right_edge.png
│ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_up_edge.png
│ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_left_corner.png
│ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_left_edge.png
│ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_right_corner.png
│ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_right_edge.png
│ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ │ ├── bug_bk1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ │ ├── bug_bk2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ │ ├── bug_ft1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ │ ├── bug_ft2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ │ ├── bug_lt1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ │ ├── bug_lt2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── firebug.png
│ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_bk1.png
│ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_bk2.png
│ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_ft1.png
│ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_ft2.png
│ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_lt1.png
│ │ │ │ │ └── player_lt2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_lt2.png
│ │ │ │ ├── Contents.json
│ │ │ │ └── Scenery.spriteatlas
│ │ │ │ ├── bugspray.imageset
│ │ │ │ │ ├── bugspray.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── stone.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── stone.png
│ │ │ │ ├── tree.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree.png
│ │ │ │ ├── tree-stump.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree-stump.png
│ │ │ │ ├── tree-top.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree-top.png
│ │ │ │ ├── wall-broken.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wall-broken.png
│ │ │ │ ├── wall-cracked.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wall-cracked.png
│ │ │ │ └── wall.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wall.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Bug.swift
│ │ │ ├── Extensions.swift
│ │ │ ├── Firebug.swift
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── Player.swift
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ ├── TileSets.sks
│ │ │ └── Types.swift
│ │ └── PestControl.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── final
│ │ └── PestControl
│ │ ├── PestControl
│ │ │ ├── Animatable.swift
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass1.png
│ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass2.png
│ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass3.png
│ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_center.png
│ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_down_edge.png
│ │ │ │ │ ├── water.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water.png
│ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_left_edge.png
│ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_left_corner.png
│ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_left_edge.png
│ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_right_corner.png
│ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_right_edge.png
│ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_right_edge.png
│ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_up_edge.png
│ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_left_corner.png
│ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_left_edge.png
│ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_right_corner.png
│ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_right_edge.png
│ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ │ ├── bug_bk1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ │ ├── bug_bk2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ │ ├── bug_ft1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ │ ├── bug_ft2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ │ ├── bug_lt1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ │ ├── bug_lt2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── firebug.png
│ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_bk1.png
│ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_bk2.png
│ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_ft1.png
│ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_ft2.png
│ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_lt1.png
│ │ │ │ │ └── player_lt2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_lt2.png
│ │ │ │ ├── Contents.json
│ │ │ │ └── Scenery.spriteatlas
│ │ │ │ ├── bugspray.imageset
│ │ │ │ │ ├── bugspray.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── stone.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── stone.png
│ │ │ │ ├── tree.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree.png
│ │ │ │ ├── tree-stump.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree-stump.png
│ │ │ │ ├── tree-top.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree-top.png
│ │ │ │ ├── wall-broken.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wall-broken.png
│ │ │ │ ├── wall-cracked.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wall-cracked.png
│ │ │ │ └── wall.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wall.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Bug.swift
│ │ │ ├── Extensions.swift
│ │ │ ├── Firebug.swift
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── Player.swift
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ ├── TileSets.sks
│ │ │ └── Types.swift
│ │ └── PestControl.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ └── PestControl
│ ├── PestControl
│ │ ├── Animatable.swift
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ ├── Icon29@2x.png
│ │ │ │ ├── Icon29@3x.png
│ │ │ │ ├── Icon29.png
│ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ ├── Icon40@2x.png
│ │ │ │ ├── Icon40@3x.png
│ │ │ │ ├── Icon40.png
│ │ │ │ ├── Icon60@2x.png
│ │ │ │ ├── Icon60@3x.png
│ │ │ │ ├── Icon76@2x.png
│ │ │ │ ├── Icon76.png
│ │ │ │ └── Icon83.5@2x.png
│ │ │ ├── Background.spriteatlas
│ │ │ │ ├── Contents.json
│ │ │ │ ├── grass1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── grass1.png
│ │ │ │ ├── grass2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── grass2.png
│ │ │ │ ├── grass3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── grass3.png
│ │ │ │ ├── water_center.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_center.png
│ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_down_edge.png
│ │ │ │ ├── water.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water.png
│ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_left_edge.png
│ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_lower_left_corner.png
│ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_lower_left_edge.png
│ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_lower_right_corner.png
│ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_lower_right_edge.png
│ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_right_edge.png
│ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_up_edge.png
│ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_left_corner.png
│ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_left_edge.png
│ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_right_corner.png
│ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── water_upper_right_edge.png
│ │ │ ├── Characters.spriteatlas
│ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ ├── bug_bk1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ ├── bug_bk2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ ├── bug_ft1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ ├── bug_ft2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ ├── bug_lt1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ ├── bug_lt2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── firebug.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── firebug.png
│ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_bk1.png
│ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_bk2.png
│ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_ft1.png
│ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_ft2.png
│ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_lt1.png
│ │ │ │ └── player_lt2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── player_lt2.png
│ │ │ ├── Contents.json
│ │ │ └── Scenery.spriteatlas
│ │ │ ├── bugspray.imageset
│ │ │ │ ├── bugspray.png
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── stone.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── stone.png
│ │ │ ├── tree.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── tree.png
│ │ │ ├── tree-stump.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── tree-stump.png
│ │ │ ├── tree-top.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── tree-top.png
│ │ │ ├── wall-broken.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wall-broken.png
│ │ │ ├── wall-cracked.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wall-cracked.png
│ │ │ └── wall.imageset
│ │ │ ├── Contents.json
│ │ │ └── wall.png
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── Bug.swift
│ │ ├── Extensions.swift
│ │ ├── GameScene.sks
│ │ ├── GameScene.swift
│ │ ├── GameViewController.swift
│ │ ├── Info.plist
│ │ ├── Player.swift
│ │ ├── SKTUtils
│ │ │ ├── CGFloat+Extensions.swift
│ │ │ ├── CGPoint+Extensions.swift
│ │ │ ├── CGVector+Extensions.swift
│ │ │ ├── Int+Extensions.swift
│ │ │ ├── SKAction+Extensions.swift
│ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ ├── SKColor+Extensions.swift
│ │ │ ├── SKNode+Extensions.swift
│ │ │ ├── SKTAudio.swift
│ │ │ ├── SKTEffects.swift
│ │ │ ├── SKTTimingFunctions.swift
│ │ │ └── Vector3.swift
│ │ ├── TileSets.sks
│ │ └── Types.swift
│ └── PestControl.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ └── contents.xcworkspacedata
├── 14-saving-and-loading-games
│ ├── challenge
│ │ └── PestControl
│ │ ├── PestControl
│ │ │ ├── Animatable.swift
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass1.png
│ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass2.png
│ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass3.png
│ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_center.png
│ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_down_edge.png
│ │ │ │ │ ├── water.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water.png
│ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_left_edge.png
│ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_left_corner.png
│ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_left_edge.png
│ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_right_corner.png
│ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_right_edge.png
│ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_right_edge.png
│ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_up_edge.png
│ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_left_corner.png
│ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_left_edge.png
│ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_right_corner.png
│ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_right_edge.png
│ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ │ ├── bug_bk1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ │ ├── bug_bk2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ │ ├── bug_ft1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ │ ├── bug_ft2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ │ ├── bug_lt1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ │ ├── bug_lt2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── firebug.png
│ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_bk1.png
│ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_bk2.png
│ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_ft1.png
│ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_ft2.png
│ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_lt1.png
│ │ │ │ │ └── player_lt2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_lt2.png
│ │ │ │ ├── Contents.json
│ │ │ │ └── Scenery.spriteatlas
│ │ │ │ ├── bugspray.imageset
│ │ │ │ │ ├── bugspray.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── stone.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── stone.png
│ │ │ │ ├── tree.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree.png
│ │ │ │ ├── tree-stump.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree-stump.png
│ │ │ │ ├── tree-top.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree-top.png
│ │ │ │ ├── wall-broken.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wall-broken.png
│ │ │ │ ├── wall-cracked.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wall-cracked.png
│ │ │ │ └── wall.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wall.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Bug.swift
│ │ │ ├── Extensions.swift
│ │ │ ├── Firebug.swift
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── HUD.swift
│ │ │ ├── Info.plist
│ │ │ ├── Level1.sks
│ │ │ ├── Level2.sks
│ │ │ ├── Level3.sks
│ │ │ ├── Player.swift
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ ├── TileSets.sks
│ │ │ └── Types.swift
│ │ └── PestControl.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── final
│ │ └── PestControl
│ │ ├── PestControl
│ │ │ ├── Animatable.swift
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83.5@2x.png
│ │ │ │ ├── Background.spriteatlas
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── grass1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass1.png
│ │ │ │ │ ├── grass2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass2.png
│ │ │ │ │ ├── grass3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── grass3.png
│ │ │ │ │ ├── water_center.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_center.png
│ │ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_down_edge.png
│ │ │ │ │ ├── water.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water.png
│ │ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_left_edge.png
│ │ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_left_corner.png
│ │ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_left_edge.png
│ │ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_right_corner.png
│ │ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_lower_right_edge.png
│ │ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_right_edge.png
│ │ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_up_edge.png
│ │ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_left_corner.png
│ │ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_left_edge.png
│ │ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── water_upper_right_corner.png
│ │ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_right_edge.png
│ │ │ │ ├── Characters.spriteatlas
│ │ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ │ ├── bug_bk1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ │ ├── bug_bk2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ │ ├── bug_ft1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ │ ├── bug_ft2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ │ ├── bug_lt1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ │ ├── bug_lt2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── firebug.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── firebug.png
│ │ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_bk1.png
│ │ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_bk2.png
│ │ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_ft1.png
│ │ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_ft2.png
│ │ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player_lt1.png
│ │ │ │ │ └── player_lt2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_lt2.png
│ │ │ │ ├── Contents.json
│ │ │ │ └── Scenery.spriteatlas
│ │ │ │ ├── bugspray.imageset
│ │ │ │ │ ├── bugspray.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── stone.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── stone.png
│ │ │ │ ├── tree.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree.png
│ │ │ │ ├── tree-stump.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree-stump.png
│ │ │ │ ├── tree-top.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── tree-top.png
│ │ │ │ ├── wall-broken.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wall-broken.png
│ │ │ │ ├── wall-cracked.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── wall-cracked.png
│ │ │ │ └── wall.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wall.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Bug.swift
│ │ │ ├── Extensions.swift
│ │ │ ├── Firebug.swift
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── HUD.swift
│ │ │ ├── Info.plist
│ │ │ ├── Level1.sks
│ │ │ ├── Level2.sks
│ │ │ ├── Level3.sks
│ │ │ ├── Player.swift
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ ├── TileSets.sks
│ │ │ └── Types.swift
│ │ └── PestControl.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ └── PestControl
│ ├── PestControl
│ │ ├── Animatable.swift
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ ├── Icon29@2x.png
│ │ │ │ ├── Icon29@3x.png
│ │ │ │ ├── Icon29.png
│ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ ├── Icon40@2x.png
│ │ │ │ ├── Icon40@3x.png
│ │ │ │ ├── Icon40.png
│ │ │ │ ├── Icon60@2x.png
│ │ │ │ ├── Icon60@3x.png
│ │ │ │ ├── Icon76@2x.png
│ │ │ │ ├── Icon76.png
│ │ │ │ └── Icon83.5@2x.png
│ │ │ ├── Background.spriteatlas
│ │ │ │ ├── Contents.json
│ │ │ │ ├── grass1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── grass1.png
│ │ │ │ ├── grass2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── grass2.png
│ │ │ │ ├── grass3.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── grass3.png
│ │ │ │ ├── water_center.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_center.png
│ │ │ │ ├── water_down_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_down_edge.png
│ │ │ │ ├── water.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water.png
│ │ │ │ ├── water_left_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_left_edge.png
│ │ │ │ ├── water_lower_left_corner.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_lower_left_corner.png
│ │ │ │ ├── water_lower_left_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_lower_left_edge.png
│ │ │ │ ├── water_lower_right_corner.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_lower_right_corner.png
│ │ │ │ ├── water_lower_right_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_lower_right_edge.png
│ │ │ │ ├── water_right_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_right_edge.png
│ │ │ │ ├── water_up_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_up_edge.png
│ │ │ │ ├── water_upper_left_corner.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_left_corner.png
│ │ │ │ ├── water_upper_left_edge.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_left_edge.png
│ │ │ │ ├── water_upper_right_corner.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── water_upper_right_corner.png
│ │ │ │ └── water_upper_right_edge.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── water_upper_right_edge.png
│ │ │ ├── Characters.spriteatlas
│ │ │ │ ├── bug_bk1.imageset
│ │ │ │ │ ├── bug_bk1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_bk2.imageset
│ │ │ │ │ ├── bug_bk2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_ft1.imageset
│ │ │ │ │ ├── bug_ft1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_ft2.imageset
│ │ │ │ │ ├── bug_ft2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_lt1.imageset
│ │ │ │ │ ├── bug_lt1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bug_lt2.imageset
│ │ │ │ │ ├── bug_lt2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── firebug.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── firebug.png
│ │ │ │ ├── player_bk1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_bk1.png
│ │ │ │ ├── player_bk2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_bk2.png
│ │ │ │ ├── player_ft1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_ft1.png
│ │ │ │ ├── player_ft2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_ft2.png
│ │ │ │ ├── player_lt1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player_lt1.png
│ │ │ │ └── player_lt2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── player_lt2.png
│ │ │ ├── Contents.json
│ │ │ └── Scenery.spriteatlas
│ │ │ ├── bugspray.imageset
│ │ │ │ ├── bugspray.png
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── stone.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── stone.png
│ │ │ ├── tree.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── tree.png
│ │ │ ├── tree-stump.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── tree-stump.png
│ │ │ ├── tree-top.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── tree-top.png
│ │ │ ├── wall-broken.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wall-broken.png
│ │ │ ├── wall-cracked.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── wall-cracked.png
│ │ │ └── wall.imageset
│ │ │ ├── Contents.json
│ │ │ └── wall.png
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── Bug.swift
│ │ ├── Extensions.swift
│ │ ├── Firebug.swift
│ │ ├── GameScene.sks
│ │ ├── GameScene.swift
│ │ ├── GameViewController.swift
│ │ ├── Info.plist
│ │ ├── Level1.sks
│ │ ├── Level2.sks
│ │ ├── Level3.sks
│ │ ├── Player.swift
│ │ ├── SKTUtils
│ │ │ ├── CGFloat+Extensions.swift
│ │ │ ├── CGPoint+Extensions.swift
│ │ │ ├── CGVector+Extensions.swift
│ │ │ ├── Int+Extensions.swift
│ │ │ ├── SKAction+Extensions.swift
│ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ ├── SKColor+Extensions.swift
│ │ │ ├── SKNode+Extensions.swift
│ │ │ ├── SKTAudio.swift
│ │ │ ├── SKTEffects.swift
│ │ │ ├── SKTTimingFunctions.swift
│ │ │ └── Vector3.swift
│ │ ├── TileSets.sks
│ │ └── Types.swift
│ └── PestControl.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ └── contents.xcworkspacedata
├── 15-making-drop-charge
│ ├── challenge1
│ │ └── DropCharge
│ │ ├── DropCharge
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83@2x.png
│ │ │ │ ├── background
│ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── bg_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_1.png
│ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_2.png
│ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_3.png
│ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── midground_4.png
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Launch.jpg
│ │ │ │ ├── objects
│ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_break01_piece02.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── block_wall.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── bomb_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── platform01.png
│ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_1.png
│ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_2.png
│ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_3.png
│ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_4.png
│ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_5.png
│ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_6.png
│ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_1.png
│ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_2.png
│ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_3.png
│ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_4.png
│ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_5.png
│ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── powerup05_6.png
│ │ │ │ ├── player
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_1.png
│ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_2.png
│ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_3.png
│ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_1.png
│ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_2.png
│ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_3.png
│ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_4.png
│ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_1.png
│ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_2.png
│ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerright_1.png
│ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player01_steerright_2.png
│ │ │ │ └── UI
│ │ │ │ ├── Contents.json
│ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── DropCharge_title.png
│ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── GameOver.png
│ │ │ │ ├── Ready.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Ready.png
│ │ │ │ └── Score.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Score.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Break5Across.sks
│ │ │ ├── CoinArrow.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── Platform5Across.sks
│ │ │ └── SKTUtils
│ │ │ ├── CGFloat+Extensions.swift
│ │ │ ├── CGPoint+Extensions.swift
│ │ │ ├── CGVector+Extensions.swift
│ │ │ ├── Int+Extensions.swift
│ │ │ ├── SKAction+Extensions.swift
│ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ ├── SKColor+Extensions.swift
│ │ │ ├── SKNode+Extensions.swift
│ │ │ ├── SKTAudio.swift
│ │ │ ├── SKTEffects.swift
│ │ │ ├── SKTTimingFunctions.swift
│ │ │ └── Vector3.swift
│ │ └── DropCharge.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── challenge2
│ │ └── DropCharge
│ │ ├── DropCharge
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83@2x.png
│ │ │ │ ├── background
│ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── bg_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_1.png
│ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_2.png
│ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_3.png
│ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── midground_4.png
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Launch.jpg
│ │ │ │ ├── objects
│ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_break01_piece02.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── block_wall.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── bomb_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── platform01.png
│ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_1.png
│ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_2.png
│ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_3.png
│ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_4.png
│ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_5.png
│ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_6.png
│ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_1.png
│ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_2.png
│ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_3.png
│ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_4.png
│ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_5.png
│ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── powerup05_6.png
│ │ │ │ ├── player
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_1.png
│ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_2.png
│ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_3.png
│ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_1.png
│ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_2.png
│ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_3.png
│ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_4.png
│ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_1.png
│ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_2.png
│ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerright_1.png
│ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player01_steerright_2.png
│ │ │ │ └── UI
│ │ │ │ ├── Contents.json
│ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── DropCharge_title.png
│ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── GameOver.png
│ │ │ │ ├── Ready.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Ready.png
│ │ │ │ └── Score.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Score.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Break5Across.sks
│ │ │ ├── CoinArrow.sks
│ │ │ ├── CoinSArrow.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── Platform5Across.sks
│ │ │ └── SKTUtils
│ │ │ ├── CGFloat+Extensions.swift
│ │ │ ├── CGPoint+Extensions.swift
│ │ │ ├── CGVector+Extensions.swift
│ │ │ ├── Int+Extensions.swift
│ │ │ ├── SKAction+Extensions.swift
│ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ ├── SKColor+Extensions.swift
│ │ │ ├── SKNode+Extensions.swift
│ │ │ ├── SKTAudio.swift
│ │ │ ├── SKTEffects.swift
│ │ │ ├── SKTTimingFunctions.swift
│ │ │ └── Vector3.swift
│ │ └── DropCharge.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── challenge3
│ │ └── DropCharge
│ │ ├── DropCharge
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83@2x.png
│ │ │ │ ├── background
│ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── bg_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_1.png
│ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_2.png
│ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_3.png
│ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── midground_4.png
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Launch.jpg
│ │ │ │ ├── objects
│ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_break01_piece02.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── block_wall.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── bomb_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── platform01.png
│ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_1.png
│ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_2.png
│ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_3.png
│ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_4.png
│ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_5.png
│ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_6.png
│ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_1.png
│ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_2.png
│ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_3.png
│ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_4.png
│ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_5.png
│ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── powerup05_6.png
│ │ │ │ ├── player
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_1.png
│ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_2.png
│ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_3.png
│ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_1.png
│ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_2.png
│ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_3.png
│ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_4.png
│ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_1.png
│ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_2.png
│ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerright_1.png
│ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player01_steerright_2.png
│ │ │ │ └── UI
│ │ │ │ ├── Contents.json
│ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── DropCharge_title.png
│ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── GameOver.png
│ │ │ │ ├── Ready.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Ready.png
│ │ │ │ └── Score.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Score.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Break5Across.sks
│ │ │ ├── BreakArrow.sks
│ │ │ ├── BreakDiagonal.sks
│ │ │ ├── Coin5Across.sks
│ │ │ ├── CoinArrow.sks
│ │ │ ├── CoinCross.sks
│ │ │ ├── CoinDiagonal.sks
│ │ │ ├── CoinS5Across.sks
│ │ │ ├── CoinSArrow.sks
│ │ │ ├── CoinSCross.sks
│ │ │ ├── CoinSDiagonal.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── Platform5Across.sks
│ │ │ ├── PlatformArrow.sks
│ │ │ ├── PlatformDiagonal.sks
│ │ │ └── SKTUtils
│ │ │ ├── CGFloat+Extensions.swift
│ │ │ ├── CGPoint+Extensions.swift
│ │ │ ├── CGVector+Extensions.swift
│ │ │ ├── Int+Extensions.swift
│ │ │ ├── SKAction+Extensions.swift
│ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ ├── SKColor+Extensions.swift
│ │ │ ├── SKNode+Extensions.swift
│ │ │ ├── SKTAudio.swift
│ │ │ ├── SKTEffects.swift
│ │ │ ├── SKTTimingFunctions.swift
│ │ │ └── Vector3.swift
│ │ └── DropCharge.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── challenge4
│ │ └── DropCharge
│ │ ├── DropCharge
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83@2x.png
│ │ │ │ ├── background
│ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── bg_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_1.png
│ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_2.png
│ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_3.png
│ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── midground_4.png
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Launch.jpg
│ │ │ │ ├── objects
│ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_break01_piece02.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── block_wall.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── bomb_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── platform01.png
│ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_1.png
│ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_2.png
│ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_3.png
│ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_4.png
│ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_5.png
│ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_6.png
│ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_1.png
│ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_2.png
│ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_3.png
│ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_4.png
│ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_5.png
│ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── powerup05_6.png
│ │ │ │ ├── player
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_1.png
│ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_2.png
│ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_3.png
│ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_1.png
│ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_2.png
│ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_3.png
│ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_4.png
│ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_1.png
│ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_2.png
│ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerright_1.png
│ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player01_steerright_2.png
│ │ │ │ └── UI
│ │ │ │ ├── Contents.json
│ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── DropCharge_title.png
│ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── GameOver.png
│ │ │ │ ├── Ready.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Ready.png
│ │ │ │ └── Score.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Score.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Break5Across.sks
│ │ │ ├── BreakArrow.sks
│ │ │ ├── BreakDiagonal.sks
│ │ │ ├── Coin5Across.sks
│ │ │ ├── CoinArrow.sks
│ │ │ ├── CoinCross.sks
│ │ │ ├── CoinDiagonal.sks
│ │ │ ├── CoinS5Across.sks
│ │ │ ├── CoinSArrow.sks
│ │ │ ├── CoinSCross.sks
│ │ │ ├── CoinSDiagonal.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── Platform5Across.sks
│ │ │ ├── PlatformArrow.sks
│ │ │ ├── PlatformDiagonal.sks
│ │ │ └── SKTUtils
│ │ │ ├── CGFloat+Extensions.swift
│ │ │ ├── CGPoint+Extensions.swift
│ │ │ ├── CGVector+Extensions.swift
│ │ │ ├── Int+Extensions.swift
│ │ │ ├── SKAction+Extensions.swift
│ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ ├── SKColor+Extensions.swift
│ │ │ ├── SKNode+Extensions.swift
│ │ │ ├── SKTAudio.swift
│ │ │ ├── SKTEffects.swift
│ │ │ ├── SKTTimingFunctions.swift
│ │ │ └── Vector3.swift
│ │ └── DropCharge.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── final
│ │ └── DropCharge
│ │ ├── DropCharge
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83@2x.png
│ │ │ │ ├── background
│ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── bg_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_1.png
│ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_2.png
│ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_3.png
│ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── midground_4.png
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Launch.jpg
│ │ │ │ ├── objects
│ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_break01_piece02.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── block_wall.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── bomb_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── platform01.png
│ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_1.png
│ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_2.png
│ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_3.png
│ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_4.png
│ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_5.png
│ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_6.png
│ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_1.png
│ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_2.png
│ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_3.png
│ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_4.png
│ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_5.png
│ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── powerup05_6.png
│ │ │ │ ├── player
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_1.png
│ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_2.png
│ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_3.png
│ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_1.png
│ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_2.png
│ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_3.png
│ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_4.png
│ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_1.png
│ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_2.png
│ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerright_1.png
│ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player01_steerright_2.png
│ │ │ │ └── UI
│ │ │ │ ├── Contents.json
│ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── DropCharge_title.png
│ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── GameOver.png
│ │ │ │ ├── Ready.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Ready.png
│ │ │ │ └── Score.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Score.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── CoinArrow.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── Platform5Across.sks
│ │ │ └── SKTUtils
│ │ │ ├── CGFloat+Extensions.swift
│ │ │ ├── CGPoint+Extensions.swift
│ │ │ ├── CGVector+Extensions.swift
│ │ │ ├── Int+Extensions.swift
│ │ │ ├── SKAction+Extensions.swift
│ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ ├── SKColor+Extensions.swift
│ │ │ ├── SKNode+Extensions.swift
│ │ │ ├── SKTAudio.swift
│ │ │ ├── SKTEffects.swift
│ │ │ ├── SKTTimingFunctions.swift
│ │ │ └── Vector3.swift
│ │ └── DropCharge.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ └── resources
│ ├── icons
│ │ ├── Icon20@2x.png
│ │ ├── Icon20@3x.png
│ │ ├── Icon20.png
│ │ ├── Icon29@2x.png
│ │ ├── Icon29@3x.png
│ │ ├── Icon29.png
│ │ ├── Icon40@2x.png
│ │ ├── Icon40@3x.png
│ │ ├── Icon40.png
│ │ ├── Icon60@2x.png
│ │ ├── Icon60@3x.png
│ │ ├── Icon76@2x.png
│ │ ├── Icon76.png
│ │ └── Icon83.5@2x.png
│ └── images
│ ├── background
│ │ ├── bg_1.png
│ │ ├── bg_2.png
│ │ ├── bg_3.png
│ │ ├── midground_1.png
│ │ ├── midground_2.png
│ │ ├── midground_3.png
│ │ └── midground_4.png
│ ├── Launch.jpg
│ ├── objects
│ │ ├── block_break01_piece01.png
│ │ ├── block_break01_piece02.png
│ │ ├── block_break01.png
│ │ ├── block_wall.png
│ │ ├── bomb_1.png
│ │ ├── platform01.png
│ │ ├── powerup01_1.png
│ │ ├── powerup01_2.png
│ │ ├── powerup01_3.png
│ │ ├── powerup01_4.png
│ │ ├── powerup01_5.png
│ │ ├── powerup01_6.png
│ │ ├── powerup05_1.png
│ │ ├── powerup05_2.png
│ │ ├── powerup05_3.png
│ │ ├── powerup05_4.png
│ │ ├── powerup05_5.png
│ │ └── powerup05_6.png
│ ├── player
│ │ ├── player01_fall_1.png
│ │ ├── player01_fall_2.png
│ │ ├── player01_fall_3.png
│ │ ├── player01_jump_1.png
│ │ ├── player01_jump_2.png
│ │ ├── player01_jump_3.png
│ │ ├── player01_jump_4.png
│ │ ├── player01_steerleft_1.png
│ │ ├── player01_steerleft_2.png
│ │ ├── player01_steerright_1.png
│ │ └── player01_steerright_2.png
│ └── UI
│ ├── DropCharge_title.png
│ ├── GameOver.png
│ ├── Ready.png
│ └── Score.png
├── 16-particle-systems
│ ├── challenge
│ │ ├── DropCharge
│ │ │ ├── DropCharge
│ │ │ │ ├── AppDelegate.swift
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ │ ├── Icon20.png
│ │ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ │ ├── Icon29.png
│ │ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ │ ├── Icon40.png
│ │ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ │ ├── Icon76.png
│ │ │ │ │ │ └── Icon83@2x.png
│ │ │ │ │ ├── background
│ │ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ │ ├── bg_1.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ │ ├── bg_2.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ │ ├── bg_3.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── midground_1.png
│ │ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── midground_2.png
│ │ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── midground_3.png
│ │ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_4.png
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Launch.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Launch.jpg
│ │ │ │ │ ├── objects
│ │ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ │ ├── block_break01.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ │ ├── block_break01_piece01.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ │ ├── block_break01_piece02.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ │ ├── block_wall.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ │ ├── bomb_1.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── platform01.png
│ │ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── powerup01_1.png
│ │ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── powerup01_2.png
│ │ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── powerup01_3.png
│ │ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── powerup01_4.png
│ │ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── powerup01_5.png
│ │ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── powerup01_6.png
│ │ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── powerup05_1.png
│ │ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── powerup05_2.png
│ │ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── powerup05_3.png
│ │ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── powerup05_4.png
│ │ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── powerup05_5.png
│ │ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_6.png
│ │ │ │ │ ├── player
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player01_fall_1.png
│ │ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player01_fall_2.png
│ │ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player01_fall_3.png
│ │ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player01_jump_1.png
│ │ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player01_jump_2.png
│ │ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player01_jump_3.png
│ │ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player01_jump_4.png
│ │ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player01_steerleft_1.png
│ │ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player01_steerleft_2.png
│ │ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── player01_steerright_1.png
│ │ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerright_2.png
│ │ │ │ │ ├── spark.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── spark.png
│ │ │ │ │ ├── Star.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Star.png
│ │ │ │ │ └── UI
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── DropCharge_title.png
│ │ │ │ │ ├── GameOver.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── GameOver.png
│ │ │ │ │ ├── Ready.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Ready.png
│ │ │ │ │ └── Score.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Score.png
│ │ │ │ ├── Base.lproj
│ │ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ │ └── Main.storyboard
│ │ │ │ ├── Break5Across.sks
│ │ │ │ ├── BreakArrow.sks
│ │ │ │ ├── BreakDiagonal.sks
│ │ │ │ ├── BrokenPlatform.sks
│ │ │ │ ├── Coin5Across.sks
│ │ │ │ ├── CoinArrow.sks
│ │ │ │ ├── CoinCross.sks
│ │ │ │ ├── CoinDiagonal.sks
│ │ │ │ ├── CoinS5Across.sks
│ │ │ │ ├── CoinSArrow.sks
│ │ │ │ ├── CoinSCross.sks
│ │ │ │ ├── CoinSDiagonal.sks
│ │ │ │ ├── CollectNormal.sks
│ │ │ │ ├── CollectSpecial.sks
│ │ │ │ ├── GameScene.sks
│ │ │ │ ├── GameScene.swift
│ │ │ │ ├── GameViewController.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── Lava.sks
│ │ │ │ ├── Platform5Across.sks
│ │ │ │ ├── PlatformArrow.sks
│ │ │ │ ├── PlatformDiagonal.sks
│ │ │ │ ├── PlayerTrail.sks
│ │ │ │ ├── SKTUtils
│ │ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ │ ├── Int+Extensions.swift
│ │ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ │ ├── SKTAudio.swift
│ │ │ │ │ ├── SKTEffects.swift
│ │ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ │ └── Vector3.swift
│ │ │ │ └── SmokeTrail.sks
│ │ │ └── DropCharge.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ ├── particles
│ │ │ ├── BrokenPlatform.sks
│ │ │ ├── CollectNormal.sks
│ │ │ ├── CollectSpecial.sks
│ │ │ └── PlayerTrail.sks
│ │ └── resources
│ │ └── Star.png
│ ├── final
│ │ └── DropCharge
│ │ ├── DropCharge
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83@2x.png
│ │ │ │ ├── background
│ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── bg_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_1.png
│ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_2.png
│ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_3.png
│ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── midground_4.png
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Launch.jpg
│ │ │ │ ├── objects
│ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_break01_piece02.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── block_wall.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── bomb_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── platform01.png
│ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_1.png
│ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_2.png
│ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_3.png
│ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_4.png
│ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_5.png
│ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_6.png
│ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_1.png
│ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_2.png
│ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_3.png
│ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_4.png
│ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_5.png
│ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── powerup05_6.png
│ │ │ │ ├── player
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_1.png
│ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_2.png
│ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_3.png
│ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_1.png
│ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_2.png
│ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_3.png
│ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_4.png
│ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_1.png
│ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_2.png
│ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerright_1.png
│ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player01_steerright_2.png
│ │ │ │ ├── spark.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spark.png
│ │ │ │ └── UI
│ │ │ │ ├── Contents.json
│ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── DropCharge_title.png
│ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── GameOver.png
│ │ │ │ ├── Ready.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Ready.png
│ │ │ │ └── Score.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Score.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Break5Across.sks
│ │ │ ├── BreakArrow.sks
│ │ │ ├── BreakDiagonal.sks
│ │ │ ├── Coin5Across.sks
│ │ │ ├── CoinArrow.sks
│ │ │ ├── CoinCross.sks
│ │ │ ├── CoinDiagonal.sks
│ │ │ ├── CoinS5Across.sks
│ │ │ ├── CoinSArrow.sks
│ │ │ ├── CoinSCross.sks
│ │ │ ├── CoinSDiagonal.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── Lava.sks
│ │ │ ├── Platform5Across.sks
│ │ │ ├── PlatformArrow.sks
│ │ │ ├── PlatformDiagonal.sks
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ └── SmokeTrail.sks
│ │ └── DropCharge.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ ├── DropCharge
│ │ ├── DropCharge
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83@2x.png
│ │ │ │ ├── background
│ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── bg_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_1.png
│ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_2.png
│ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_3.png
│ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── midground_4.png
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Launch.jpg
│ │ │ │ ├── objects
│ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_break01_piece02.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── block_wall.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── bomb_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── platform01.png
│ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_1.png
│ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_2.png
│ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_3.png
│ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_4.png
│ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_5.png
│ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_6.png
│ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_1.png
│ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_2.png
│ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_3.png
│ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_4.png
│ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_5.png
│ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── powerup05_6.png
│ │ │ │ ├── player
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_1.png
│ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_2.png
│ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_3.png
│ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_1.png
│ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_2.png
│ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_3.png
│ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_4.png
│ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_1.png
│ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_2.png
│ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerright_1.png
│ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player01_steerright_2.png
│ │ │ │ └── UI
│ │ │ │ ├── Contents.json
│ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── DropCharge_title.png
│ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── GameOver.png
│ │ │ │ ├── Ready.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Ready.png
│ │ │ │ └── Score.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Score.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Break5Across.sks
│ │ │ ├── BreakArrow.sks
│ │ │ ├── BreakDiagonal.sks
│ │ │ ├── Coin5Across.sks
│ │ │ ├── CoinArrow.sks
│ │ │ ├── CoinCross.sks
│ │ │ ├── CoinDiagonal.sks
│ │ │ ├── CoinS5Across.sks
│ │ │ ├── CoinSArrow.sks
│ │ │ ├── CoinSCross.sks
│ │ │ ├── CoinSDiagonal.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── Platform5Across.sks
│ │ │ ├── PlatformArrow.sks
│ │ │ ├── PlatformDiagonal.sks
│ │ │ └── SKTUtils
│ │ │ ├── CGFloat+Extensions.swift
│ │ │ ├── CGPoint+Extensions.swift
│ │ │ ├── CGVector+Extensions.swift
│ │ │ ├── Int+Extensions.swift
│ │ │ ├── SKAction+Extensions.swift
│ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ ├── SKColor+Extensions.swift
│ │ │ ├── SKNode+Extensions.swift
│ │ │ ├── SKTAudio.swift
│ │ │ ├── SKTEffects.swift
│ │ │ ├── SKTTimingFunctions.swift
│ │ │ └── Vector3.swift
│ │ └── DropCharge.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── examples
│ │ ├── Rain
│ │ │ ├── Rain
│ │ │ │ ├── AppDelegate.swift
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Rain_Drop.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Rain_Drop.png
│ │ │ │ ├── Base.lproj
│ │ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ │ └── Main.storyboard
│ │ │ │ ├── GameScene.sks
│ │ │ │ ├── GameScene.swift
│ │ │ │ ├── GameViewController.swift
│ │ │ │ ├── Info.plist
│ │ │ │ └── Rain.sks
│ │ │ └── Rain.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── Starfield
│ │ ├── Starfield
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Spaceship.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Spaceship.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ └── spark.png
│ │ └── Starfield.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── resources
│ └── spark.png
├── 17-juice-up-your-game
│ ├── challenge
│ │ └── DropCharge
│ │ ├── DropCharge
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83@2x.png
│ │ │ │ ├── background
│ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── bg_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_1.png
│ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_2.png
│ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_3.png
│ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── midground_4.png
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Launch.jpg
│ │ │ │ ├── objects
│ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_break01_piece02.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── block_wall.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── bomb_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── platform01.png
│ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_1.png
│ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_2.png
│ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_3.png
│ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_4.png
│ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_5.png
│ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_6.png
│ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_1.png
│ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_2.png
│ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_3.png
│ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_4.png
│ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_5.png
│ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── powerup05_6.png
│ │ │ │ ├── player
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_1.png
│ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_2.png
│ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_3.png
│ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_1.png
│ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_2.png
│ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_3.png
│ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_4.png
│ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_1.png
│ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_2.png
│ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerright_1.png
│ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player01_steerright_2.png
│ │ │ │ ├── spark.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spark.png
│ │ │ │ ├── Star.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Star.png
│ │ │ │ └── UI
│ │ │ │ ├── Contents.json
│ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── DropCharge_title.png
│ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── GameOver.png
│ │ │ │ ├── Ready.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Ready.png
│ │ │ │ └── Score.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Score.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Break5Across.sks
│ │ │ ├── BreakArrow.sks
│ │ │ ├── BreakDiagonal.sks
│ │ │ ├── BrokenPlatform.sks
│ │ │ ├── Coin5Across.sks
│ │ │ ├── CoinArrow.sks
│ │ │ ├── CoinCross.sks
│ │ │ ├── CoinDiagonal.sks
│ │ │ ├── CoinS5Across.sks
│ │ │ ├── CoinSArrow.sks
│ │ │ ├── CoinSCross.sks
│ │ │ ├── CoinSDiagonal.sks
│ │ │ ├── Coin.sks
│ │ │ ├── CoinSpecial.sks
│ │ │ ├── CollectNormal.sks
│ │ │ ├── CollectSpecial.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── Lava.sks
│ │ │ ├── Platform5Across.sks
│ │ │ ├── PlatformArrow.sks
│ │ │ ├── PlatformDiagonal.sks
│ │ │ ├── PlayerTrail.sks
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ ├── SmokeTrail.sks
│ │ │ └── sounds
│ │ │ ├── alarm.wav
│ │ │ ├── attribution.txt
│ │ │ ├── bgMusic.mp3
│ │ │ ├── bombDrop.wav
│ │ │ ├── boost.wav
│ │ │ ├── brick.caf
│ │ │ ├── coin1.wav
│ │ │ ├── coin4.wav
│ │ │ ├── DrownFireBug.mp3
│ │ │ ├── explosion1.wav
│ │ │ ├── explosion2.wav
│ │ │ ├── explosion3.wav
│ │ │ ├── explosion4.wav
│ │ │ ├── jump.wav
│ │ │ ├── nitro.wav
│ │ │ ├── player_die.wav
│ │ │ ├── SpaceGame.caf
│ │ │ └── tickTock.wav
│ │ └── DropCharge.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── final
│ │ └── DropCharge
│ │ ├── DropCharge
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83@2x.png
│ │ │ │ ├── background
│ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── bg_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_1.png
│ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_2.png
│ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_3.png
│ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── midground_4.png
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Launch.jpg
│ │ │ │ ├── objects
│ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_break01_piece02.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── block_wall.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── bomb_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── platform01.png
│ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_1.png
│ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_2.png
│ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_3.png
│ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_4.png
│ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_5.png
│ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_6.png
│ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_1.png
│ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_2.png
│ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_3.png
│ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_4.png
│ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_5.png
│ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── powerup05_6.png
│ │ │ │ ├── player
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_1.png
│ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_2.png
│ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_3.png
│ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_1.png
│ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_2.png
│ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_3.png
│ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_4.png
│ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_1.png
│ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_2.png
│ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerright_1.png
│ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player01_steerright_2.png
│ │ │ │ ├── spark.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spark.png
│ │ │ │ ├── Star.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Star.png
│ │ │ │ └── UI
│ │ │ │ ├── Contents.json
│ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── DropCharge_title.png
│ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── GameOver.png
│ │ │ │ ├── Ready.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Ready.png
│ │ │ │ └── Score.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Score.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Break5Across.sks
│ │ │ ├── BreakArrow.sks
│ │ │ ├── BreakDiagonal.sks
│ │ │ ├── BrokenPlatform.sks
│ │ │ ├── Coin5Across.sks
│ │ │ ├── CoinArrow.sks
│ │ │ ├── CoinCross.sks
│ │ │ ├── CoinDiagonal.sks
│ │ │ ├── CoinS5Across.sks
│ │ │ ├── CoinSArrow.sks
│ │ │ ├── CoinSCross.sks
│ │ │ ├── CoinSDiagonal.sks
│ │ │ ├── Coin.sks
│ │ │ ├── CoinSpecial.sks
│ │ │ ├── CollectNormal.sks
│ │ │ ├── CollectSpecial.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── Lava.sks
│ │ │ ├── Platform5Across.sks
│ │ │ ├── PlatformArrow.sks
│ │ │ ├── PlatformDiagonal.sks
│ │ │ ├── PlayerTrail.sks
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ ├── SmokeTrail.sks
│ │ │ └── sounds
│ │ │ ├── alarm.wav
│ │ │ ├── attribution.txt
│ │ │ ├── bgMusic.mp3
│ │ │ ├── bombDrop.wav
│ │ │ ├── boost.wav
│ │ │ ├── brick.caf
│ │ │ ├── coin1.wav
│ │ │ ├── coin4.wav
│ │ │ ├── DrownFireBug.mp3
│ │ │ ├── explosion1.wav
│ │ │ ├── explosion2.wav
│ │ │ ├── explosion3.wav
│ │ │ ├── explosion4.wav
│ │ │ ├── jump.wav
│ │ │ ├── nitro.wav
│ │ │ ├── player_die.wav
│ │ │ ├── SpaceGame.caf
│ │ │ └── tickTock.wav
│ │ └── DropCharge.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ ├── DropCharge
│ │ ├── DropCharge
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon20@2x-1.png
│ │ │ │ │ ├── Icon20@2x.png
│ │ │ │ │ ├── Icon20@3x.png
│ │ │ │ │ ├── Icon20.png
│ │ │ │ │ ├── Icon29@2x-1.png
│ │ │ │ │ ├── Icon29@2x.png
│ │ │ │ │ ├── Icon29@3x.png
│ │ │ │ │ ├── Icon29.png
│ │ │ │ │ ├── Icon40@2x-1.png
│ │ │ │ │ ├── Icon40@2x.png
│ │ │ │ │ ├── Icon40@3x.png
│ │ │ │ │ ├── Icon40.png
│ │ │ │ │ ├── Icon60@2x.png
│ │ │ │ │ ├── Icon60@3x.png
│ │ │ │ │ ├── Icon76@2x.png
│ │ │ │ │ ├── Icon76.png
│ │ │ │ │ └── Icon83@2x.png
│ │ │ │ ├── background
│ │ │ │ │ ├── bg_1.imageset
│ │ │ │ │ │ ├── bg_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_2.imageset
│ │ │ │ │ │ ├── bg_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bg_3.imageset
│ │ │ │ │ │ ├── bg_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── midground_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_1.png
│ │ │ │ │ ├── midground_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_2.png
│ │ │ │ │ ├── midground_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── midground_3.png
│ │ │ │ │ └── midground_4.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── midground_4.png
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Launch.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Launch.jpg
│ │ │ │ ├── objects
│ │ │ │ │ ├── block_break01.imageset
│ │ │ │ │ │ ├── block_break01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece01.imageset
│ │ │ │ │ │ ├── block_break01_piece01.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_break01_piece02.imageset
│ │ │ │ │ │ ├── block_break01_piece02.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── block_wall.imageset
│ │ │ │ │ │ ├── block_wall.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── bomb_1.imageset
│ │ │ │ │ │ ├── bomb_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── platform01.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── platform01.png
│ │ │ │ │ ├── powerup01_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_1.png
│ │ │ │ │ ├── powerup01_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_2.png
│ │ │ │ │ ├── powerup01_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_3.png
│ │ │ │ │ ├── powerup01_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_4.png
│ │ │ │ │ ├── powerup01_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_5.png
│ │ │ │ │ ├── powerup01_6.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup01_6.png
│ │ │ │ │ ├── powerup05_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_1.png
│ │ │ │ │ ├── powerup05_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_2.png
│ │ │ │ │ ├── powerup05_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_3.png
│ │ │ │ │ ├── powerup05_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_4.png
│ │ │ │ │ ├── powerup05_5.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── powerup05_5.png
│ │ │ │ │ └── powerup05_6.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── powerup05_6.png
│ │ │ │ ├── player
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── player01_fall_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_1.png
│ │ │ │ │ ├── player01_fall_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_2.png
│ │ │ │ │ ├── player01_fall_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_fall_3.png
│ │ │ │ │ ├── player01_jump_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_1.png
│ │ │ │ │ ├── player01_jump_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_2.png
│ │ │ │ │ ├── player01_jump_3.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_3.png
│ │ │ │ │ ├── player01_jump_4.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_jump_4.png
│ │ │ │ │ ├── player01_steerleft_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_1.png
│ │ │ │ │ ├── player01_steerleft_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerleft_2.png
│ │ │ │ │ ├── player01_steerright_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── player01_steerright_1.png
│ │ │ │ │ └── player01_steerright_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── player01_steerright_2.png
│ │ │ │ ├── spark.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── spark.png
│ │ │ │ ├── Star.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Star.png
│ │ │ │ └── UI
│ │ │ │ ├── Contents.json
│ │ │ │ ├── DropCharge_title.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── DropCharge_title.png
│ │ │ │ ├── GameOver.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── GameOver.png
│ │ │ │ ├── Ready.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Ready.png
│ │ │ │ └── Score.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Score.png
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── Break5Across.sks
│ │ │ ├── BreakArrow.sks
│ │ │ ├── BreakDiagonal.sks
│ │ │ ├── BrokenPlatform.sks
│ │ │ ├── Coin5Across.sks
│ │ │ ├── CoinArrow.sks
│ │ │ ├── CoinCross.sks
│ │ │ ├── CoinDiagonal.sks
│ │ │ ├── CoinS5Across.sks
│ │ │ ├── CoinSArrow.sks
│ │ │ ├── CoinSCross.sks
│ │ │ ├── CoinSDiagonal.sks
│ │ │ ├── CollectNormal.sks
│ │ │ ├── CollectSpecial.sks
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── Lava.sks
│ │ │ ├── Platform5Across.sks
│ │ │ ├── PlatformArrow.sks
│ │ │ ├── PlatformDiagonal.sks
│ │ │ ├── PlayerTrail.sks
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ └── SmokeTrail.sks
│ │ └── DropCharge.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── resources
│ └── sounds
│ ├── alarm.wav
│ ├── attribution.txt
│ ├── bgMusic.mp3
│ ├── bombDrop.wav
│ ├── boost.wav
│ ├── brick.caf
│ ├── coin1.wav
│ ├── coin4.wav
│ ├── DrownFireBug.mp3
│ ├── explosion1.wav
│ ├── explosion2.wav
│ ├── explosion3.wav
│ ├── explosion4.wav
│ ├── jump.wav
│ ├── nitro.wav
│ ├── player_die.wav
│ ├── SpaceGame.caf
│ └── tickTock.wav
├── 18-macos-games
│ ├── challenge
│ │ └── Zombie Piranhas
│ │ ├── Zombie Piranhas
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ZP-icon_20@2x-1.png
│ │ │ │ │ ├── ZP-icon_20@2x.png
│ │ │ │ │ ├── ZP-icon_20@3x.png
│ │ │ │ │ ├── ZP-icon_20.png
│ │ │ │ │ ├── ZP-icon_29@2x-1.png
│ │ │ │ │ ├── ZP-icon_29@2x.png
│ │ │ │ │ ├── ZP-icon_29@3x.png
│ │ │ │ │ ├── ZP-icon_29.png
│ │ │ │ │ ├── ZP-icon_40@2x-1.png
│ │ │ │ │ ├── ZP-icon_40@2x.png
│ │ │ │ │ ├── ZP-icon_40@3x.png
│ │ │ │ │ ├── ZP-icon_40.png
│ │ │ │ │ ├── ZP-icon_60@2x.png
│ │ │ │ │ ├── ZP-icon_60@3x.png
│ │ │ │ │ ├── ZP-icon_76@2x.png
│ │ │ │ │ ├── ZP-icon_76.png
│ │ │ │ │ └── ZP-icon_83.5.png
│ │ │ │ ├── Background
│ │ │ │ │ ├── Background_1.imageset
│ │ │ │ │ │ ├── Background_1@2x.png
│ │ │ │ │ │ ├── Background_1@3x.png
│ │ │ │ │ │ ├── Background_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_2.imageset
│ │ │ │ │ │ ├── Background_2@2x.png
│ │ │ │ │ │ ├── Background_2@3x.png
│ │ │ │ │ │ ├── Background_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_3.imageset
│ │ │ │ │ │ ├── Background_3@2x.png
│ │ │ │ │ │ ├── Background_3@3x.png
│ │ │ │ │ │ ├── Background_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_4.imageset
│ │ │ │ │ │ ├── Background_4@2x.png
│ │ │ │ │ │ ├── Background_4@3x.png
│ │ │ │ │ │ ├── Background_4.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Bubble.imageset
│ │ │ │ │ │ ├── Bubble@2x.png
│ │ │ │ │ │ ├── Bubble@3x.png
│ │ │ │ │ │ ├── Bubble.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Cloud.imageset
│ │ │ │ │ │ ├── Cloud@2x.png
│ │ │ │ │ │ ├── Cloud@3x.png
│ │ │ │ │ │ ├── Cloud.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Fish
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Piranha_1@2x.png
│ │ │ │ │ │ ├── Piranha_1@3x.png
│ │ │ │ │ │ └── Piranha_1.png
│ │ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Piranha_2@2x.png
│ │ │ │ │ │ ├── Piranha_2@3x.png
│ │ │ │ │ │ └── Piranha_2.png
│ │ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── YumFish_1@2x.png
│ │ │ │ │ │ ├── YumFish_1@3x.png
│ │ │ │ │ │ └── YumFish_1.png
│ │ │ │ │ └── YumFish_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── YumFish_2@2x.png
│ │ │ │ │ ├── YumFish_2@3x.png
│ │ │ │ │ └── YumFish_2.png
│ │ │ │ ├── Foreground
│ │ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ │ ├── Boat_Side@2x.png
│ │ │ │ │ │ ├── Boat_Side@3x.png
│ │ │ │ │ │ ├── Boat_Side.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Fisherman_Side@2x.png
│ │ │ │ │ │ ├── Fisherman_Side@3x.png
│ │ │ │ │ │ └── Fisherman_Side.png
│ │ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── FisherZombie_Side@2x.png
│ │ │ │ │ │ ├── FisherZombie_Side@3x.png
│ │ │ │ │ │ └── FisherZombie_Side.png
│ │ │ │ │ ├── Hook.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Hook@2x.png
│ │ │ │ │ │ ├── Hook@3x.png
│ │ │ │ │ │ └── Hook.png
│ │ │ │ │ └── Pole_Side.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Pole_Side@2x.png
│ │ │ │ │ ├── Pole_Side@3x.png
│ │ │ │ │ └── Pole_Side.png
│ │ │ │ └── Title.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Title.png
│ │ │ ├── Audio
│ │ │ │ ├── Fish Bash Sound.caf
│ │ │ │ ├── Fish Caught.caf
│ │ │ │ ├── Fishing Ambience Sound.caf
│ │ │ │ ├── Fish Off Sound.caf
│ │ │ │ ├── Game Over Sound.caf
│ │ │ │ ├── Reel Start Sound.caf
│ │ │ │ ├── Reel Tick Sound.caf
│ │ │ │ ├── Yum Fish Sound.caf
│ │ │ │ └── Zombie Sound.caf
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ └── Splash.sks
│ │ ├── Zombie Piranhas macOS
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets_macOS.xcassets
│ │ │ │ ├── AppIcon_macOS.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ZP-macOS_128@2x.png
│ │ │ │ │ ├── ZP-macOS_128.png
│ │ │ │ │ ├── ZP-macOS_16@2x.png
│ │ │ │ │ ├── ZP-macOS_16.png
│ │ │ │ │ ├── ZP-macOS_256@2x.png
│ │ │ │ │ ├── ZP-macOS_256.png
│ │ │ │ │ ├── ZP-macOS_32@2x.png
│ │ │ │ │ ├── ZP-macOS_32.png
│ │ │ │ │ ├── ZP-macOS_512@2x.png
│ │ │ │ │ └── ZP-macOS_512.png
│ │ │ │ └── Contents.json
│ │ │ ├── Base.lproj
│ │ │ │ └── Main.storyboard
│ │ │ ├── Info.plist
│ │ │ ├── ViewController.swift
│ │ │ └── Zombie Piranhas.entitlements
│ │ └── Zombie Piranhas.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── final
│ │ └── Zombie Piranhas
│ │ ├── Zombie Piranhas
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ZP-icon_20@2x-1.png
│ │ │ │ │ ├── ZP-icon_20@2x.png
│ │ │ │ │ ├── ZP-icon_20@3x.png
│ │ │ │ │ ├── ZP-icon_20.png
│ │ │ │ │ ├── ZP-icon_29@2x-1.png
│ │ │ │ │ ├── ZP-icon_29@2x.png
│ │ │ │ │ ├── ZP-icon_29@3x.png
│ │ │ │ │ ├── ZP-icon_29.png
│ │ │ │ │ ├── ZP-icon_40@2x-1.png
│ │ │ │ │ ├── ZP-icon_40@2x.png
│ │ │ │ │ ├── ZP-icon_40@3x.png
│ │ │ │ │ ├── ZP-icon_40.png
│ │ │ │ │ ├── ZP-icon_60@2x.png
│ │ │ │ │ ├── ZP-icon_60@3x.png
│ │ │ │ │ ├── ZP-icon_76@2x.png
│ │ │ │ │ ├── ZP-icon_76.png
│ │ │ │ │ └── ZP-icon_83.5.png
│ │ │ │ ├── Background
│ │ │ │ │ ├── Background_1.imageset
│ │ │ │ │ │ ├── Background_1@2x.png
│ │ │ │ │ │ ├── Background_1@3x.png
│ │ │ │ │ │ ├── Background_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_2.imageset
│ │ │ │ │ │ ├── Background_2@2x.png
│ │ │ │ │ │ ├── Background_2@3x.png
│ │ │ │ │ │ ├── Background_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_3.imageset
│ │ │ │ │ │ ├── Background_3@2x.png
│ │ │ │ │ │ ├── Background_3@3x.png
│ │ │ │ │ │ ├── Background_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_4.imageset
│ │ │ │ │ │ ├── Background_4@2x.png
│ │ │ │ │ │ ├── Background_4@3x.png
│ │ │ │ │ │ ├── Background_4.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Bubble.imageset
│ │ │ │ │ │ ├── Bubble@2x.png
│ │ │ │ │ │ ├── Bubble@3x.png
│ │ │ │ │ │ ├── Bubble.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Cloud.imageset
│ │ │ │ │ │ ├── Cloud@2x.png
│ │ │ │ │ │ ├── Cloud@3x.png
│ │ │ │ │ │ ├── Cloud.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Fish
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Piranha_1@2x.png
│ │ │ │ │ │ ├── Piranha_1@3x.png
│ │ │ │ │ │ └── Piranha_1.png
│ │ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Piranha_2@2x.png
│ │ │ │ │ │ ├── Piranha_2@3x.png
│ │ │ │ │ │ └── Piranha_2.png
│ │ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── YumFish_1@2x.png
│ │ │ │ │ │ ├── YumFish_1@3x.png
│ │ │ │ │ │ └── YumFish_1.png
│ │ │ │ │ └── YumFish_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── YumFish_2@2x.png
│ │ │ │ │ ├── YumFish_2@3x.png
│ │ │ │ │ └── YumFish_2.png
│ │ │ │ ├── Foreground
│ │ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ │ ├── Boat_Side@2x.png
│ │ │ │ │ │ ├── Boat_Side@3x.png
│ │ │ │ │ │ ├── Boat_Side.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Fisherman_Side@2x.png
│ │ │ │ │ │ ├── Fisherman_Side@3x.png
│ │ │ │ │ │ └── Fisherman_Side.png
│ │ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── FisherZombie_Side@2x.png
│ │ │ │ │ │ ├── FisherZombie_Side@3x.png
│ │ │ │ │ │ └── FisherZombie_Side.png
│ │ │ │ │ ├── Hook.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Hook@2x.png
│ │ │ │ │ │ ├── Hook@3x.png
│ │ │ │ │ │ └── Hook.png
│ │ │ │ │ └── Pole_Side.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Pole_Side@2x.png
│ │ │ │ │ ├── Pole_Side@3x.png
│ │ │ │ │ └── Pole_Side.png
│ │ │ │ └── Title.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Title.png
│ │ │ ├── Audio
│ │ │ │ ├── Fish Bash Sound.caf
│ │ │ │ ├── Fish Caught.caf
│ │ │ │ ├── Fishing Ambience Sound.caf
│ │ │ │ ├── Fish Off Sound.caf
│ │ │ │ ├── Game Over Sound.caf
│ │ │ │ ├── Reel Start Sound.caf
│ │ │ │ ├── Reel Tick Sound.caf
│ │ │ │ ├── Yum Fish Sound.caf
│ │ │ │ └── Zombie Sound.caf
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ └── Splash.sks
│ │ ├── Zombie Piranhas macOS
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets_macOS.xcassets
│ │ │ │ ├── AppIcon_macOS.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ZP-macOS_128@2x.png
│ │ │ │ │ ├── ZP-macOS_128.png
│ │ │ │ │ ├── ZP-macOS_16@2x.png
│ │ │ │ │ ├── ZP-macOS_16.png
│ │ │ │ │ ├── ZP-macOS_256@2x.png
│ │ │ │ │ ├── ZP-macOS_256.png
│ │ │ │ │ ├── ZP-macOS_32@2x.png
│ │ │ │ │ ├── ZP-macOS_32.png
│ │ │ │ │ ├── ZP-macOS_512@2x.png
│ │ │ │ │ └── ZP-macOS_512.png
│ │ │ │ └── Contents.json
│ │ │ ├── Base.lproj
│ │ │ │ └── Main.storyboard
│ │ │ ├── Info.plist
│ │ │ ├── ViewController.swift
│ │ │ └── Zombie Piranhas.entitlements
│ │ └── Zombie Piranhas.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ ├── Icon Art
│ │ ├── ZP-macOS_128@2x.png
│ │ ├── ZP-macOS_128.png
│ │ ├── ZP-macOS_16@2x.png
│ │ ├── ZP-macOS_16.png
│ │ ├── ZP-macOS_256@2x.png
│ │ ├── ZP-macOS_256.png
│ │ ├── ZP-macOS_32@2x.png
│ │ ├── ZP-macOS_32.png
│ │ ├── ZP-macOS_512@2x.png
│ │ └── ZP-macOS_512.png
│ └── Zombie Piranhas
│ ├── Zombie Piranhas
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── ZP-icon_20@2x-1.png
│ │ │ │ ├── ZP-icon_20@2x.png
│ │ │ │ ├── ZP-icon_20@3x.png
│ │ │ │ ├── ZP-icon_20.png
│ │ │ │ ├── ZP-icon_29@2x-1.png
│ │ │ │ ├── ZP-icon_29@2x.png
│ │ │ │ ├── ZP-icon_29@3x.png
│ │ │ │ ├── ZP-icon_29.png
│ │ │ │ ├── ZP-icon_40@2x-1.png
│ │ │ │ ├── ZP-icon_40@2x.png
│ │ │ │ ├── ZP-icon_40@3x.png
│ │ │ │ ├── ZP-icon_40.png
│ │ │ │ ├── ZP-icon_60@2x.png
│ │ │ │ ├── ZP-icon_60@3x.png
│ │ │ │ ├── ZP-icon_76@2x.png
│ │ │ │ ├── ZP-icon_76.png
│ │ │ │ └── ZP-icon_83.5.png
│ │ │ ├── Background
│ │ │ │ ├── Background_1.imageset
│ │ │ │ │ ├── Background_1@2x.png
│ │ │ │ │ ├── Background_1@3x.png
│ │ │ │ │ ├── Background_1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Background_2.imageset
│ │ │ │ │ ├── Background_2@2x.png
│ │ │ │ │ ├── Background_2@3x.png
│ │ │ │ │ ├── Background_2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Background_3.imageset
│ │ │ │ │ ├── Background_3@2x.png
│ │ │ │ │ ├── Background_3@3x.png
│ │ │ │ │ ├── Background_3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Background_4.imageset
│ │ │ │ │ ├── Background_4@2x.png
│ │ │ │ │ ├── Background_4@3x.png
│ │ │ │ │ ├── Background_4.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Bubble.imageset
│ │ │ │ │ ├── Bubble@2x.png
│ │ │ │ │ ├── Bubble@3x.png
│ │ │ │ │ ├── Bubble.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Cloud.imageset
│ │ │ │ │ ├── Cloud@2x.png
│ │ │ │ │ ├── Cloud@3x.png
│ │ │ │ │ ├── Cloud.png
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── Fish
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Piranha_1@2x.png
│ │ │ │ │ ├── Piranha_1@3x.png
│ │ │ │ │ └── Piranha_1.png
│ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Piranha_2@2x.png
│ │ │ │ │ ├── Piranha_2@3x.png
│ │ │ │ │ └── Piranha_2.png
│ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── YumFish_1@2x.png
│ │ │ │ │ ├── YumFish_1@3x.png
│ │ │ │ │ └── YumFish_1.png
│ │ │ │ └── YumFish_2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── YumFish_2@2x.png
│ │ │ │ ├── YumFish_2@3x.png
│ │ │ │ └── YumFish_2.png
│ │ │ ├── Foreground
│ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ ├── Boat_Side@2x.png
│ │ │ │ │ ├── Boat_Side@3x.png
│ │ │ │ │ ├── Boat_Side.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Fisherman_Side@2x.png
│ │ │ │ │ ├── Fisherman_Side@3x.png
│ │ │ │ │ └── Fisherman_Side.png
│ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── FisherZombie_Side@2x.png
│ │ │ │ │ ├── FisherZombie_Side@3x.png
│ │ │ │ │ └── FisherZombie_Side.png
│ │ │ │ ├── Hook.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Hook@2x.png
│ │ │ │ │ ├── Hook@3x.png
│ │ │ │ │ └── Hook.png
│ │ │ │ └── Pole_Side.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Pole_Side@2x.png
│ │ │ │ ├── Pole_Side@3x.png
│ │ │ │ └── Pole_Side.png
│ │ │ └── Title.imageset
│ │ │ ├── Contents.json
│ │ │ └── Title.png
│ │ ├── Audio
│ │ │ ├── Fish Bash Sound.caf
│ │ │ ├── Fish Caught.caf
│ │ │ ├── Fishing Ambience Sound.caf
│ │ │ ├── Fish Off Sound.caf
│ │ │ ├── Game Over Sound.caf
│ │ │ ├── Reel Start Sound.caf
│ │ │ ├── Reel Tick Sound.caf
│ │ │ ├── Yum Fish Sound.caf
│ │ │ └── Zombie Sound.caf
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── GameScene.sks
│ │ ├── GameScene.swift
│ │ ├── GameViewController.swift
│ │ ├── Info.plist
│ │ ├── SKTUtils
│ │ │ ├── CGFloat+Extensions.swift
│ │ │ ├── CGPoint+Extensions.swift
│ │ │ ├── CGVector+Extensions.swift
│ │ │ ├── Int+Extensions.swift
│ │ │ ├── SKAction+Extensions.swift
│ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ ├── SKColor+Extensions.swift
│ │ │ ├── SKNode+Extensions.swift
│ │ │ ├── SKTAudio.swift
│ │ │ ├── SKTEffects.swift
│ │ │ ├── SKTTimingFunctions.swift
│ │ │ └── Vector3.swift
│ │ └── Splash.sks
│ └── Zombie Piranhas.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ └── contents.xcworkspacedata
├── 19-tvos-games
│ ├── final
│ │ └── Zombie Piranhas
│ │ ├── Zombie Piranhas
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ZP-icon_20@2x-1.png
│ │ │ │ │ ├── ZP-icon_20@2x.png
│ │ │ │ │ ├── ZP-icon_20@3x.png
│ │ │ │ │ ├── ZP-icon_20.png
│ │ │ │ │ ├── ZP-icon_29@2x-1.png
│ │ │ │ │ ├── ZP-icon_29@2x.png
│ │ │ │ │ ├── ZP-icon_29@3x.png
│ │ │ │ │ ├── ZP-icon_29.png
│ │ │ │ │ ├── ZP-icon_40@2x-1.png
│ │ │ │ │ ├── ZP-icon_40@2x.png
│ │ │ │ │ ├── ZP-icon_40@3x.png
│ │ │ │ │ ├── ZP-icon_40.png
│ │ │ │ │ ├── ZP-icon_60@2x.png
│ │ │ │ │ ├── ZP-icon_60@3x.png
│ │ │ │ │ ├── ZP-icon_76@2x.png
│ │ │ │ │ ├── ZP-icon_76.png
│ │ │ │ │ └── ZP-icon_83.5.png
│ │ │ │ ├── Background
│ │ │ │ │ ├── Background_1.imageset
│ │ │ │ │ │ ├── Background_1@2x.png
│ │ │ │ │ │ ├── Background_1@3x.png
│ │ │ │ │ │ ├── Background_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_2.imageset
│ │ │ │ │ │ ├── Background_2@2x.png
│ │ │ │ │ │ ├── Background_2@3x.png
│ │ │ │ │ │ ├── Background_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_3.imageset
│ │ │ │ │ │ ├── Background_3@2x.png
│ │ │ │ │ │ ├── Background_3@3x.png
│ │ │ │ │ │ ├── Background_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_4.imageset
│ │ │ │ │ │ ├── Background_4@2x.png
│ │ │ │ │ │ ├── Background_4@3x.png
│ │ │ │ │ │ ├── Background_4.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Bubble.imageset
│ │ │ │ │ │ ├── Bubble@2x.png
│ │ │ │ │ │ ├── Bubble@3x.png
│ │ │ │ │ │ ├── Bubble.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Cloud.imageset
│ │ │ │ │ │ ├── Cloud@2x.png
│ │ │ │ │ │ ├── Cloud@3x.png
│ │ │ │ │ │ ├── Cloud.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Fish
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Piranha_1@2x.png
│ │ │ │ │ │ ├── Piranha_1@3x.png
│ │ │ │ │ │ └── Piranha_1.png
│ │ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Piranha_2@2x.png
│ │ │ │ │ │ ├── Piranha_2@3x.png
│ │ │ │ │ │ └── Piranha_2.png
│ │ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── YumFish_1@2x.png
│ │ │ │ │ │ ├── YumFish_1@3x.png
│ │ │ │ │ │ └── YumFish_1.png
│ │ │ │ │ └── YumFish_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── YumFish_2@2x.png
│ │ │ │ │ ├── YumFish_2@3x.png
│ │ │ │ │ └── YumFish_2.png
│ │ │ │ ├── Foreground
│ │ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ │ ├── Boat_Side@2x.png
│ │ │ │ │ │ ├── Boat_Side@3x.png
│ │ │ │ │ │ ├── Boat_Side.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Fisherman_Side@2x.png
│ │ │ │ │ │ ├── Fisherman_Side@3x.png
│ │ │ │ │ │ └── Fisherman_Side.png
│ │ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── FisherZombie_Side@2x.png
│ │ │ │ │ │ ├── FisherZombie_Side@3x.png
│ │ │ │ │ │ └── FisherZombie_Side.png
│ │ │ │ │ ├── Hook.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Hook@2x.png
│ │ │ │ │ │ ├── Hook@3x.png
│ │ │ │ │ │ └── Hook.png
│ │ │ │ │ └── Pole_Side.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Pole_Side@2x.png
│ │ │ │ │ ├── Pole_Side@3x.png
│ │ │ │ │ └── Pole_Side.png
│ │ │ │ └── Title.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Title.png
│ │ │ ├── Audio
│ │ │ │ ├── Fish Bash Sound.caf
│ │ │ │ ├── Fish Caught.caf
│ │ │ │ ├── Fishing Ambience Sound.caf
│ │ │ │ ├── Fish Off Sound.caf
│ │ │ │ ├── Game Over Sound.caf
│ │ │ │ ├── Reel Start Sound.caf
│ │ │ │ ├── Reel Tick Sound.caf
│ │ │ │ ├── Yum Fish Sound.caf
│ │ │ │ └── Zombie Sound.caf
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ └── Splash.sks
│ │ ├── Zombie Piranhas macOS
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets_macOS.xcassets
│ │ │ │ ├── AppIcon_macOS.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ZP-macOS_128@2x.png
│ │ │ │ │ ├── ZP-macOS_128.png
│ │ │ │ │ ├── ZP-macOS_16@2x.png
│ │ │ │ │ ├── ZP-macOS_16.png
│ │ │ │ │ ├── ZP-macOS_256@2x.png
│ │ │ │ │ ├── ZP-macOS_256.png
│ │ │ │ │ ├── ZP-macOS_32@2x.png
│ │ │ │ │ ├── ZP-macOS_32.png
│ │ │ │ │ ├── ZP-macOS_512@2x.png
│ │ │ │ │ └── ZP-macOS_512.png
│ │ │ │ └── Contents.json
│ │ │ ├── Base.lproj
│ │ │ │ └── Main.storyboard
│ │ │ ├── Info.plist
│ │ │ ├── ViewController.swift
│ │ │ └── Zombie Piranhas.entitlements
│ │ ├── Zombie Piranhas tvOS
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets_tvos.xcassets
│ │ │ │ ├── App Icon & Top Shelf Image.brandassets
│ │ │ │ │ ├── App Icon - Large.imagestack
│ │ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ └── ZP_tvOS_large_back.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ └── ZP_tvOS_large_front.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Middle.imagestacklayer
│ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── ZP_tvOS_large_middle.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── App Icon - Small.imagestack
│ │ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ └── ZP_tvOS_small_back.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ └── ZP_tvOS_small_front.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Middle.imagestacklayer
│ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── ZP_tvOS_small_middle.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Top Shelf Image.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── ZP_tvOS_top_shelf.png
│ │ │ │ │ └── Top Shelf Image Wide.imageset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ └── LaunchImage.launchimage
│ │ │ │ └── Contents.json
│ │ │ ├── Base.lproj
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameViewController.swift
│ │ │ └── Info.plist
│ │ └── Zombie Piranhas.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ ├── resources
│ │ ├── tvOS Icons
│ │ │ ├── Large
│ │ │ │ ├── ZP_tvOS_large_back.png
│ │ │ │ ├── ZP_tvOS_large_front.png
│ │ │ │ └── ZP_tvOS_large_middle.png
│ │ │ └── Small
│ │ │ ├── ZP_tvOS_small_back.png
│ │ │ ├── ZP_tvOS_small_front.png
│ │ │ └── ZP_tvOS_small_middle.png
│ │ └── ZP_tvOS_top_shelf.png
│ └── Zombie Piranhas
│ ├── Zombie Piranhas
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── ZP-icon_20@2x-1.png
│ │ │ │ ├── ZP-icon_20@2x.png
│ │ │ │ ├── ZP-icon_20@3x.png
│ │ │ │ ├── ZP-icon_20.png
│ │ │ │ ├── ZP-icon_29@2x-1.png
│ │ │ │ ├── ZP-icon_29@2x.png
│ │ │ │ ├── ZP-icon_29@3x.png
│ │ │ │ ├── ZP-icon_29.png
│ │ │ │ ├── ZP-icon_40@2x-1.png
│ │ │ │ ├── ZP-icon_40@2x.png
│ │ │ │ ├── ZP-icon_40@3x.png
│ │ │ │ ├── ZP-icon_40.png
│ │ │ │ ├── ZP-icon_60@2x.png
│ │ │ │ ├── ZP-icon_60@3x.png
│ │ │ │ ├── ZP-icon_76@2x.png
│ │ │ │ ├── ZP-icon_76.png
│ │ │ │ └── ZP-icon_83.5.png
│ │ │ ├── Background
│ │ │ │ ├── Background_1.imageset
│ │ │ │ │ ├── Background_1@2x.png
│ │ │ │ │ ├── Background_1@3x.png
│ │ │ │ │ ├── Background_1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Background_2.imageset
│ │ │ │ │ ├── Background_2@2x.png
│ │ │ │ │ ├── Background_2@3x.png
│ │ │ │ │ ├── Background_2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Background_3.imageset
│ │ │ │ │ ├── Background_3@2x.png
│ │ │ │ │ ├── Background_3@3x.png
│ │ │ │ │ ├── Background_3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Background_4.imageset
│ │ │ │ │ ├── Background_4@2x.png
│ │ │ │ │ ├── Background_4@3x.png
│ │ │ │ │ ├── Background_4.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Bubble.imageset
│ │ │ │ │ ├── Bubble@2x.png
│ │ │ │ │ ├── Bubble@3x.png
│ │ │ │ │ ├── Bubble.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Cloud.imageset
│ │ │ │ │ ├── Cloud@2x.png
│ │ │ │ │ ├── Cloud@3x.png
│ │ │ │ │ ├── Cloud.png
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── Fish
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Piranha_1@2x.png
│ │ │ │ │ ├── Piranha_1@3x.png
│ │ │ │ │ └── Piranha_1.png
│ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Piranha_2@2x.png
│ │ │ │ │ ├── Piranha_2@3x.png
│ │ │ │ │ └── Piranha_2.png
│ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── YumFish_1@2x.png
│ │ │ │ │ ├── YumFish_1@3x.png
│ │ │ │ │ └── YumFish_1.png
│ │ │ │ └── YumFish_2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── YumFish_2@2x.png
│ │ │ │ ├── YumFish_2@3x.png
│ │ │ │ └── YumFish_2.png
│ │ │ ├── Foreground
│ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ ├── Boat_Side@2x.png
│ │ │ │ │ ├── Boat_Side@3x.png
│ │ │ │ │ ├── Boat_Side.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Fisherman_Side@2x.png
│ │ │ │ │ ├── Fisherman_Side@3x.png
│ │ │ │ │ └── Fisherman_Side.png
│ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── FisherZombie_Side@2x.png
│ │ │ │ │ ├── FisherZombie_Side@3x.png
│ │ │ │ │ └── FisherZombie_Side.png
│ │ │ │ ├── Hook.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Hook@2x.png
│ │ │ │ │ ├── Hook@3x.png
│ │ │ │ │ └── Hook.png
│ │ │ │ └── Pole_Side.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Pole_Side@2x.png
│ │ │ │ ├── Pole_Side@3x.png
│ │ │ │ └── Pole_Side.png
│ │ │ └── Title.imageset
│ │ │ ├── Contents.json
│ │ │ └── Title.png
│ │ ├── Audio
│ │ │ ├── Fish Bash Sound.caf
│ │ │ ├── Fish Caught.caf
│ │ │ ├── Fishing Ambience Sound.caf
│ │ │ ├── Fish Off Sound.caf
│ │ │ ├── Game Over Sound.caf
│ │ │ ├── Reel Start Sound.caf
│ │ │ ├── Reel Tick Sound.caf
│ │ │ ├── Yum Fish Sound.caf
│ │ │ └── Zombie Sound.caf
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── GameScene.sks
│ │ ├── GameScene.swift
│ │ ├── GameViewController.swift
│ │ ├── Info.plist
│ │ ├── SKTUtils
│ │ │ ├── CGFloat+Extensions.swift
│ │ │ ├── CGPoint+Extensions.swift
│ │ │ ├── CGVector+Extensions.swift
│ │ │ ├── Int+Extensions.swift
│ │ │ ├── SKAction+Extensions.swift
│ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ ├── SKColor+Extensions.swift
│ │ │ ├── SKNode+Extensions.swift
│ │ │ ├── SKTAudio.swift
│ │ │ ├── SKTEffects.swift
│ │ │ ├── SKTTimingFunctions.swift
│ │ │ └── Vector3.swift
│ │ └── Splash.sks
│ ├── Zombie Piranhas macOS
│ │ ├── AppDelegate.swift
│ │ ├── Assets_macOS.xcassets
│ │ │ ├── AppIcon_macOS.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── ZP-macOS_128@2x.png
│ │ │ │ ├── ZP-macOS_128.png
│ │ │ │ ├── ZP-macOS_16@2x.png
│ │ │ │ ├── ZP-macOS_16.png
│ │ │ │ ├── ZP-macOS_256@2x.png
│ │ │ │ ├── ZP-macOS_256.png
│ │ │ │ ├── ZP-macOS_32@2x.png
│ │ │ │ ├── ZP-macOS_32.png
│ │ │ │ ├── ZP-macOS_512@2x.png
│ │ │ │ └── ZP-macOS_512.png
│ │ │ └── Contents.json
│ │ ├── Base.lproj
│ │ │ └── Main.storyboard
│ │ ├── Info.plist
│ │ ├── ViewController.swift
│ │ └── Zombie Piranhas.entitlements
│ └── Zombie Piranhas.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ └── contents.xcworkspacedata
├── 20-watchos-games
│ ├── final
│ │ └── Zombie Piranhas
│ │ ├── Zombie Piranhas
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ZP-icon_20@2x-1.png
│ │ │ │ │ ├── ZP-icon_20@2x.png
│ │ │ │ │ ├── ZP-icon_20@3x.png
│ │ │ │ │ ├── ZP-icon_20.png
│ │ │ │ │ ├── ZP-icon_29@2x-1.png
│ │ │ │ │ ├── ZP-icon_29@2x.png
│ │ │ │ │ ├── ZP-icon_29@3x.png
│ │ │ │ │ ├── ZP-icon_29.png
│ │ │ │ │ ├── ZP-icon_40@2x-1.png
│ │ │ │ │ ├── ZP-icon_40@2x.png
│ │ │ │ │ ├── ZP-icon_40@3x.png
│ │ │ │ │ ├── ZP-icon_40.png
│ │ │ │ │ ├── ZP-icon_60@2x.png
│ │ │ │ │ ├── ZP-icon_60@3x.png
│ │ │ │ │ ├── ZP-icon_76@2x.png
│ │ │ │ │ ├── ZP-icon_76.png
│ │ │ │ │ └── ZP-icon_83.5.png
│ │ │ │ ├── Background
│ │ │ │ │ ├── Background_1.imageset
│ │ │ │ │ │ ├── Background_1@2x.png
│ │ │ │ │ │ ├── Background_1@3x.png
│ │ │ │ │ │ ├── Background_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_2.imageset
│ │ │ │ │ │ ├── Background_2@2x.png
│ │ │ │ │ │ ├── Background_2@3x.png
│ │ │ │ │ │ ├── Background_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_3.imageset
│ │ │ │ │ │ ├── Background_3@2x.png
│ │ │ │ │ │ ├── Background_3@3x.png
│ │ │ │ │ │ ├── Background_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_4.imageset
│ │ │ │ │ │ ├── Background_4@2x.png
│ │ │ │ │ │ ├── Background_4@3x.png
│ │ │ │ │ │ ├── Background_4.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Bubble.imageset
│ │ │ │ │ │ ├── Bubble@2x.png
│ │ │ │ │ │ ├── Bubble@3x.png
│ │ │ │ │ │ ├── Bubble.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Cloud.imageset
│ │ │ │ │ │ ├── Cloud@2x.png
│ │ │ │ │ │ ├── Cloud@3x.png
│ │ │ │ │ │ ├── Cloud.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Fish
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Piranha_1@2x.png
│ │ │ │ │ │ ├── Piranha_1@3x.png
│ │ │ │ │ │ └── Piranha_1.png
│ │ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Piranha_2@2x.png
│ │ │ │ │ │ ├── Piranha_2@3x.png
│ │ │ │ │ │ └── Piranha_2.png
│ │ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── YumFish_1@2x.png
│ │ │ │ │ │ ├── YumFish_1@3x.png
│ │ │ │ │ │ └── YumFish_1.png
│ │ │ │ │ └── YumFish_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── YumFish_2@2x.png
│ │ │ │ │ ├── YumFish_2@3x.png
│ │ │ │ │ └── YumFish_2.png
│ │ │ │ ├── Foreground
│ │ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ │ ├── Boat_Side@2x.png
│ │ │ │ │ │ ├── Boat_Side@3x.png
│ │ │ │ │ │ ├── Boat_Side.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Fisherman_Side@2x.png
│ │ │ │ │ │ ├── Fisherman_Side@3x.png
│ │ │ │ │ │ └── Fisherman_Side.png
│ │ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── FisherZombie_Side@2x.png
│ │ │ │ │ │ ├── FisherZombie_Side@3x.png
│ │ │ │ │ │ └── FisherZombie_Side.png
│ │ │ │ │ ├── Hook.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Hook@2x.png
│ │ │ │ │ │ ├── Hook@3x.png
│ │ │ │ │ │ └── Hook.png
│ │ │ │ │ └── Pole_Side.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Pole_Side@2x.png
│ │ │ │ │ ├── Pole_Side@3x.png
│ │ │ │ │ └── Pole_Side.png
│ │ │ │ └── Title.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── Title.png
│ │ │ ├── Audio
│ │ │ │ ├── Fish Bash Sound.caf
│ │ │ │ ├── Fish Caught.caf
│ │ │ │ ├── Fishing Ambience Sound.caf
│ │ │ │ ├── Fish Off Sound.caf
│ │ │ │ ├── Game Over Sound.caf
│ │ │ │ ├── Reel Start Sound.caf
│ │ │ │ ├── Reel Tick Sound.caf
│ │ │ │ ├── Yum Fish Sound.caf
│ │ │ │ └── Zombie Sound.caf
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameScene.sks
│ │ │ ├── GameScene.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── Info.plist
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ └── Splash.sks
│ │ ├── Zombie Piranhas macOS
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets_macOS.xcassets
│ │ │ │ ├── AppIcon_macOS.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── ZP-macOS_128@2x.png
│ │ │ │ │ ├── ZP-macOS_128.png
│ │ │ │ │ ├── ZP-macOS_16@2x.png
│ │ │ │ │ ├── ZP-macOS_16.png
│ │ │ │ │ ├── ZP-macOS_256@2x.png
│ │ │ │ │ ├── ZP-macOS_256.png
│ │ │ │ │ ├── ZP-macOS_32@2x.png
│ │ │ │ │ ├── ZP-macOS_32.png
│ │ │ │ │ ├── ZP-macOS_512@2x.png
│ │ │ │ │ └── ZP-macOS_512.png
│ │ │ │ └── Contents.json
│ │ │ ├── Base.lproj
│ │ │ │ └── Main.storyboard
│ │ │ ├── Info.plist
│ │ │ ├── ViewController.swift
│ │ │ └── Zombie Piranhas.entitlements
│ │ ├── Zombie Piranhas tvOS
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets_tvos.xcassets
│ │ │ │ ├── App Icon & Top Shelf Image.brandassets
│ │ │ │ │ ├── App Icon - Large.imagestack
│ │ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ └── ZP_tvOS_large_back.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ └── ZP_tvOS_large_front.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Middle.imagestacklayer
│ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── ZP_tvOS_large_middle.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── App Icon - Small.imagestack
│ │ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ └── ZP_tvOS_small_back.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ │ └── ZP_tvOS_small_front.png
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Middle.imagestacklayer
│ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── ZP_tvOS_small_middle.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Top Shelf Image.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── ZP_tvOS_top_shelf.png
│ │ │ │ │ └── Top Shelf Image Wide.imageset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ └── LaunchImage.launchimage
│ │ │ │ └── Contents.json
│ │ │ ├── Base.lproj
│ │ │ │ └── Main.storyboard
│ │ │ ├── GameViewController.swift
│ │ │ └── Info.plist
│ │ ├── Zombie Piranhas watchOS
│ │ │ ├── Assets.xcassets
│ │ │ │ └── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── ZP_Icon_watchOS_24@2x.png
│ │ │ │ ├── ZP_Icon_watchOS_28@2x.png
│ │ │ │ ├── ZP_Icon_watchOS_29@2x.png
│ │ │ │ ├── ZP_Icon_watchOS_29@3x.png
│ │ │ │ ├── ZP_Icon_watchOS_40@2x.png
│ │ │ │ ├── ZP_Icon_watchOS_86@2x.png
│ │ │ │ └── ZP_Icon_watchOS_98@2x.png
│ │ │ ├── Base.lproj
│ │ │ │ └── Interface.storyboard
│ │ │ └── Info.plist
│ │ ├── Zombie Piranhas watchOS Extension
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── Artwork
│ │ │ │ │ ├── Background_1.imageset
│ │ │ │ │ │ ├── Background_1.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_2.imageset
│ │ │ │ │ │ ├── Background_2.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_3.imageset
│ │ │ │ │ │ ├── Background_3.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Background_4.imageset
│ │ │ │ │ │ ├── Background_4.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ │ ├── Boat_Side.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Bubble.imageset
│ │ │ │ │ │ ├── Bubble.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Cloud.imageset
│ │ │ │ │ │ ├── Cloud.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Fisherman_Side.png
│ │ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── FisherZombie_Side.png
│ │ │ │ │ ├── Hook.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Hook.png
│ │ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Piranha_1.png
│ │ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Piranha_2.png
│ │ │ │ │ ├── Pole_Side.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Pole_Side.png
│ │ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── YumFish_1.png
│ │ │ │ │ └── YumFish_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── YumFish_2.png
│ │ │ │ ├── Complication.complicationset
│ │ │ │ │ ├── Circular.imageset
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Modular.imageset
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Utilitarian.imageset
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Contents.json
│ │ │ ├── ExtensionDelegate.swift
│ │ │ ├── GameScene.sks
│ │ │ ├── Info.plist
│ │ │ └── InterfaceController.swift
│ │ └── Zombie Piranhas.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ ├── Artwork
│ │ ├── Background_1.png
│ │ ├── Background_2.png
│ │ ├── Background_3.png
│ │ ├── Background_4.png
│ │ ├── Boat_Side.png
│ │ ├── Bubble.png
│ │ ├── Cloud.png
│ │ ├── Fisherman_Side.png
│ │ ├── FisherZombie_Side.png
│ │ ├── Hook.png
│ │ ├── Piranha_1.png
│ │ ├── Piranha_2.png
│ │ ├── Pole_Side.png
│ │ ├── YumFish_1.png
│ │ └── YumFish_2.png
│ ├── GameScene.sks
│ ├── Icon Art
│ │ ├── ZP_Icon_watchOS_24@2x.png
│ │ ├── ZP_Icon_watchOS_28@2x.png
│ │ ├── ZP_Icon_watchOS_29@2x.png
│ │ ├── ZP_Icon_watchOS_29@3x.png
│ │ ├── ZP_Icon_watchOS_40@2x.png
│ │ ├── ZP_Icon_watchOS_86@2x.png
│ │ └── ZP_Icon_watchOS_98@2x.png
│ └── Zombie Piranhas
│ ├── Zombie Piranhas
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── ZP-icon_20@2x-1.png
│ │ │ │ ├── ZP-icon_20@2x.png
│ │ │ │ ├── ZP-icon_20@3x.png
│ │ │ │ ├── ZP-icon_20.png
│ │ │ │ ├── ZP-icon_29@2x-1.png
│ │ │ │ ├── ZP-icon_29@2x.png
│ │ │ │ ├── ZP-icon_29@3x.png
│ │ │ │ ├── ZP-icon_29.png
│ │ │ │ ├── ZP-icon_40@2x-1.png
│ │ │ │ ├── ZP-icon_40@2x.png
│ │ │ │ ├── ZP-icon_40@3x.png
│ │ │ │ ├── ZP-icon_40.png
│ │ │ │ ├── ZP-icon_60@2x.png
│ │ │ │ ├── ZP-icon_60@3x.png
│ │ │ │ ├── ZP-icon_76@2x.png
│ │ │ │ ├── ZP-icon_76.png
│ │ │ │ └── ZP-icon_83.5.png
│ │ │ ├── Background
│ │ │ │ ├── Background_1.imageset
│ │ │ │ │ ├── Background_1@2x.png
│ │ │ │ │ ├── Background_1@3x.png
│ │ │ │ │ ├── Background_1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Background_2.imageset
│ │ │ │ │ ├── Background_2@2x.png
│ │ │ │ │ ├── Background_2@3x.png
│ │ │ │ │ ├── Background_2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Background_3.imageset
│ │ │ │ │ ├── Background_3@2x.png
│ │ │ │ │ ├── Background_3@3x.png
│ │ │ │ │ ├── Background_3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Background_4.imageset
│ │ │ │ │ ├── Background_4@2x.png
│ │ │ │ │ ├── Background_4@3x.png
│ │ │ │ │ ├── Background_4.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Bubble.imageset
│ │ │ │ │ ├── Bubble@2x.png
│ │ │ │ │ ├── Bubble@3x.png
│ │ │ │ │ ├── Bubble.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Cloud.imageset
│ │ │ │ │ ├── Cloud@2x.png
│ │ │ │ │ ├── Cloud@3x.png
│ │ │ │ │ ├── Cloud.png
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── Fish
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Piranha_1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Piranha_1@2x.png
│ │ │ │ │ ├── Piranha_1@3x.png
│ │ │ │ │ └── Piranha_1.png
│ │ │ │ ├── Piranha_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Piranha_2@2x.png
│ │ │ │ │ ├── Piranha_2@3x.png
│ │ │ │ │ └── Piranha_2.png
│ │ │ │ ├── YumFish_1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── YumFish_1@2x.png
│ │ │ │ │ ├── YumFish_1@3x.png
│ │ │ │ │ └── YumFish_1.png
│ │ │ │ └── YumFish_2.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── YumFish_2@2x.png
│ │ │ │ ├── YumFish_2@3x.png
│ │ │ │ └── YumFish_2.png
│ │ │ ├── Foreground
│ │ │ │ ├── Boat_Side.imageset
│ │ │ │ │ ├── Boat_Side@2x.png
│ │ │ │ │ ├── Boat_Side@3x.png
│ │ │ │ │ ├── Boat_Side.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Fisherman_Side.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Fisherman_Side@2x.png
│ │ │ │ │ ├── Fisherman_Side@3x.png
│ │ │ │ │ └── Fisherman_Side.png
│ │ │ │ ├── FisherZombie_Side.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── FisherZombie_Side@2x.png
│ │ │ │ │ ├── FisherZombie_Side@3x.png
│ │ │ │ │ └── FisherZombie_Side.png
│ │ │ │ ├── Hook.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Hook@2x.png
│ │ │ │ │ ├── Hook@3x.png
│ │ │ │ │ └── Hook.png
│ │ │ │ └── Pole_Side.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Pole_Side@2x.png
│ │ │ │ ├── Pole_Side@3x.png
│ │ │ │ └── Pole_Side.png
│ │ │ └── Title.imageset
│ │ │ ├── Contents.json
│ │ │ └── Title.png
│ │ ├── Audio
│ │ │ ├── Fish Bash Sound.caf
│ │ │ ├── Fish Caught.caf
│ │ │ ├── Fishing Ambience Sound.caf
│ │ │ ├── Fish Off Sound.caf
│ │ │ ├── Game Over Sound.caf
│ │ │ ├── Reel Start Sound.caf
│ │ │ ├── Reel Tick Sound.caf
│ │ │ ├── Yum Fish Sound.caf
│ │ │ └── Zombie Sound.caf
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── GameScene.sks
│ │ ├── GameScene.swift
│ │ ├── GameViewController.swift
│ │ ├── Info.plist
│ │ ├── SKTUtils
│ │ │ ├── CGFloat+Extensions.swift
│ │ │ ├── CGPoint+Extensions.swift
│ │ │ ├── CGVector+Extensions.swift
│ │ │ ├── Int+Extensions.swift
│ │ │ ├── SKAction+Extensions.swift
│ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ ├── SKColor+Extensions.swift
│ │ │ ├── SKNode+Extensions.swift
│ │ │ ├── SKTAudio.swift
│ │ │ ├── SKTEffects.swift
│ │ │ ├── SKTTimingFunctions.swift
│ │ │ └── Vector3.swift
│ │ └── Splash.sks
│ ├── Zombie Piranhas macOS
│ │ ├── AppDelegate.swift
│ │ ├── Assets_macOS.xcassets
│ │ │ ├── AppIcon_macOS.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── ZP-macOS_128@2x.png
│ │ │ │ ├── ZP-macOS_128.png
│ │ │ │ ├── ZP-macOS_16@2x.png
│ │ │ │ ├── ZP-macOS_16.png
│ │ │ │ ├── ZP-macOS_256@2x.png
│ │ │ │ ├── ZP-macOS_256.png
│ │ │ │ ├── ZP-macOS_32@2x.png
│ │ │ │ ├── ZP-macOS_32.png
│ │ │ │ ├── ZP-macOS_512@2x.png
│ │ │ │ └── ZP-macOS_512.png
│ │ │ └── Contents.json
│ │ ├── Base.lproj
│ │ │ └── Main.storyboard
│ │ ├── Info.plist
│ │ ├── ViewController.swift
│ │ └── Zombie Piranhas.entitlements
│ ├── Zombie Piranhas tvOS
│ │ ├── AppDelegate.swift
│ │ ├── Assets_tvos.xcassets
│ │ │ ├── App Icon & Top Shelf Image.brandassets
│ │ │ │ ├── App Icon - Large.imagestack
│ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── ZP_tvOS_large_back.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── ZP_tvOS_large_front.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Middle.imagestacklayer
│ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── ZP_tvOS_large_middle.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── App Icon - Small.imagestack
│ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── ZP_tvOS_small_back.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ └── ZP_tvOS_small_front.png
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Middle.imagestacklayer
│ │ │ │ │ ├── Content.imageset
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── ZP_tvOS_small_middle.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Top Shelf Image.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── ZP_tvOS_top_shelf.png
│ │ │ │ └── Top Shelf Image Wide.imageset
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ └── LaunchImage.launchimage
│ │ │ └── Contents.json
│ │ ├── Base.lproj
│ │ │ └── Main.storyboard
│ │ ├── GameViewController.swift
│ │ └── Info.plist
│ └── Zombie Piranhas.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ └── contents.xcworkspacedata
├── 21-game-center-achievements
│ ├── challenge
│ │ └── CircuitRacer
│ │ ├── CircuitRacer
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── CircuitRacerAssets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon_29@2x-1.png
│ │ │ │ │ ├── Icon_29@2x.png
│ │ │ │ │ ├── Icon_29@3x.png
│ │ │ │ │ ├── Icon_29.png
│ │ │ │ │ ├── Icon_40@2x-1.png
│ │ │ │ │ ├── Icon_40@2x.png
│ │ │ │ │ ├── Icon_40@3x.png
│ │ │ │ │ ├── Icon_40.png
│ │ │ │ │ ├── Icon_60@2x.png
│ │ │ │ │ ├── Icon_60@3x.png
│ │ │ │ │ ├── Icon_76@2x.png
│ │ │ │ │ ├── Icon_76.png
│ │ │ │ │ └── Icon_83.5@2x.png
│ │ │ │ ├── base.imageset
│ │ │ │ │ ├── base.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_main_menu.imageset
│ │ │ │ │ ├── bg_main_menu.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_select_car.imageset
│ │ │ │ │ ├── bg_select_car.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_select_difficulty.imageset
│ │ │ │ │ ├── bg_select_difficulty.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── box.imageset
│ │ │ │ │ ├── box.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_back.imageset
│ │ │ │ │ ├── btn_back.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car1.imageset
│ │ │ │ │ ├── btn_car1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car2.imageset
│ │ │ │ │ ├── btn_car2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car3.imageset
│ │ │ │ │ ├── btn_car3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_easy.imageset
│ │ │ │ │ ├── btn_easy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_gamecenter.imageset
│ │ │ │ │ ├── btn_gamecenter.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_hard.imageset
│ │ │ │ │ ├── btn_hard.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_medium.imageset
│ │ │ │ │ ├── btn_medium.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_pause.imageset
│ │ │ │ │ ├── btn_pause.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_play.imageset
│ │ │ │ │ ├── btn_play.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── button_green.imageset
│ │ │ │ │ ├── button_green.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── button_red.imageset
│ │ │ │ │ ├── button_red.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_1.imageset
│ │ │ │ │ ├── car_1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_2.imageset
│ │ │ │ │ ├── car_2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_3.imageset
│ │ │ │ │ ├── car_3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── circuit_racer_logo.imageset
│ │ │ │ │ ├── circuit_racer_logo.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── knob.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── knob.png
│ │ │ │ ├── track_1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── track_1.png
│ │ │ │ ├── track_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── track_2.png
│ │ │ │ └── track_3.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── track_3.png
│ │ │ ├── GameKit
│ │ │ │ ├── AchievementsHelper.swift
│ │ │ │ └── GameKitHelper.swift
│ │ │ ├── Info.plist
│ │ │ ├── InputSources
│ │ │ │ ├── AnalogControl.swift
│ │ │ │ ├── ButtonNode.swift
│ │ │ │ └── InputControlProtocol.swift
│ │ │ ├── Resources
│ │ │ │ ├── Levels
│ │ │ │ │ └── LevelDetails.plist
│ │ │ │ └── Sounds
│ │ │ │ ├── box.wav
│ │ │ │ ├── button_press.wav
│ │ │ │ ├── circuitracer.mp3
│ │ │ │ └── lap.wav
│ │ │ ├── Scenes
│ │ │ │ ├── CarType.swift
│ │ │ │ ├── FailureScene
│ │ │ │ │ └── FailureScene.sks
│ │ │ │ ├── GameScene
│ │ │ │ │ ├── GameScene+Buttons.swift
│ │ │ │ │ ├── GameScene.sks
│ │ │ │ │ └── GameScene.swift
│ │ │ │ ├── GameStates
│ │ │ │ │ ├── GameActiveState.swift
│ │ │ │ │ ├── GameFailureState.swift
│ │ │ │ │ ├── GameOverlayState.swift
│ │ │ │ │ ├── GamePauseState.swift
│ │ │ │ │ └── GameSuccessState.swift
│ │ │ │ ├── LevelType.swift
│ │ │ │ ├── PauseScene
│ │ │ │ │ └── PauseScene.sks
│ │ │ │ ├── SceneOverlay.swift
│ │ │ │ ├── SKSpriteNode+CircuitRacer.swift
│ │ │ │ └── SuccessScene
│ │ │ │ └── SuccessScene.sks
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ └── ViewControllers
│ │ │ ├── CircuitRacerNavigationController.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── HomeScreenViewController.swift
│ │ │ ├── SelectCarViewController.swift
│ │ │ └── SelectLevelViewController.swift
│ │ └── CircuitRacer.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── final
│ │ └── CircuitRacer
│ │ ├── CircuitRacer
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── CircuitRacerAssets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon_29@2x-1.png
│ │ │ │ │ ├── Icon_29@2x.png
│ │ │ │ │ ├── Icon_29@3x.png
│ │ │ │ │ ├── Icon_29.png
│ │ │ │ │ ├── Icon_40@2x-1.png
│ │ │ │ │ ├── Icon_40@2x.png
│ │ │ │ │ ├── Icon_40@3x.png
│ │ │ │ │ ├── Icon_40.png
│ │ │ │ │ ├── Icon_60@2x.png
│ │ │ │ │ ├── Icon_60@3x.png
│ │ │ │ │ ├── Icon_76@2x.png
│ │ │ │ │ ├── Icon_76.png
│ │ │ │ │ └── Icon_83.5@2x.png
│ │ │ │ ├── base.imageset
│ │ │ │ │ ├── base.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_main_menu.imageset
│ │ │ │ │ ├── bg_main_menu.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_select_car.imageset
│ │ │ │ │ ├── bg_select_car.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_select_difficulty.imageset
│ │ │ │ │ ├── bg_select_difficulty.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── box.imageset
│ │ │ │ │ ├── box.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_back.imageset
│ │ │ │ │ ├── btn_back.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car1.imageset
│ │ │ │ │ ├── btn_car1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car2.imageset
│ │ │ │ │ ├── btn_car2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car3.imageset
│ │ │ │ │ ├── btn_car3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_easy.imageset
│ │ │ │ │ ├── btn_easy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_gamecenter.imageset
│ │ │ │ │ ├── btn_gamecenter.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_hard.imageset
│ │ │ │ │ ├── btn_hard.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_medium.imageset
│ │ │ │ │ ├── btn_medium.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_pause.imageset
│ │ │ │ │ ├── btn_pause.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_play.imageset
│ │ │ │ │ ├── btn_play.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── button_green.imageset
│ │ │ │ │ ├── button_green.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── button_red.imageset
│ │ │ │ │ ├── button_red.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_1.imageset
│ │ │ │ │ ├── car_1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_2.imageset
│ │ │ │ │ ├── car_2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_3.imageset
│ │ │ │ │ ├── car_3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── circuit_racer_logo.imageset
│ │ │ │ │ ├── circuit_racer_logo.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── knob.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── knob.png
│ │ │ │ ├── track_1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── track_1.png
│ │ │ │ ├── track_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── track_2.png
│ │ │ │ └── track_3.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── track_3.png
│ │ │ ├── GameKit
│ │ │ │ ├── AchievementsHelper.swift
│ │ │ │ └── GameKitHelper.swift
│ │ │ ├── Info.plist
│ │ │ ├── InputSources
│ │ │ │ ├── AnalogControl.swift
│ │ │ │ ├── ButtonNode.swift
│ │ │ │ └── InputControlProtocol.swift
│ │ │ ├── Resources
│ │ │ │ ├── Levels
│ │ │ │ │ └── LevelDetails.plist
│ │ │ │ └── Sounds
│ │ │ │ ├── box.wav
│ │ │ │ ├── button_press.wav
│ │ │ │ ├── circuitracer.mp3
│ │ │ │ └── lap.wav
│ │ │ ├── Scenes
│ │ │ │ ├── CarType.swift
│ │ │ │ ├── FailureScene
│ │ │ │ │ └── FailureScene.sks
│ │ │ │ ├── GameScene
│ │ │ │ │ ├── GameScene+Buttons.swift
│ │ │ │ │ ├── GameScene.sks
│ │ │ │ │ └── GameScene.swift
│ │ │ │ ├── GameStates
│ │ │ │ │ ├── GameActiveState.swift
│ │ │ │ │ ├── GameFailureState.swift
│ │ │ │ │ ├── GameOverlayState.swift
│ │ │ │ │ ├── GamePauseState.swift
│ │ │ │ │ └── GameSuccessState.swift
│ │ │ │ ├── LevelType.swift
│ │ │ │ ├── PauseScene
│ │ │ │ │ └── PauseScene.sks
│ │ │ │ ├── SceneOverlay.swift
│ │ │ │ ├── SKSpriteNode+CircuitRacer.swift
│ │ │ │ └── SuccessScene
│ │ │ │ └── SuccessScene.sks
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ └── ViewControllers
│ │ │ ├── CircuitRacerNavigationController.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── HomeScreenViewController.swift
│ │ │ ├── SelectCarViewController.swift
│ │ │ └── SelectLevelViewController.swift
│ │ └── CircuitRacer.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ ├── CircuitRacer
│ │ ├── CircuitRacer
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── CircuitRacerAssets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon_29@2x-1.png
│ │ │ │ │ ├── Icon_29@2x.png
│ │ │ │ │ ├── Icon_29@3x.png
│ │ │ │ │ ├── Icon_29.png
│ │ │ │ │ ├── Icon_40@2x-1.png
│ │ │ │ │ ├── Icon_40@2x.png
│ │ │ │ │ ├── Icon_40@3x.png
│ │ │ │ │ ├── Icon_40.png
│ │ │ │ │ ├── Icon_60@2x.png
│ │ │ │ │ ├── Icon_60@3x.png
│ │ │ │ │ ├── Icon_76@2x.png
│ │ │ │ │ ├── Icon_76.png
│ │ │ │ │ └── Icon_83.5@2x.png
│ │ │ │ ├── base.imageset
│ │ │ │ │ ├── base.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_main_menu.imageset
│ │ │ │ │ ├── bg_main_menu.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_select_car.imageset
│ │ │ │ │ ├── bg_select_car.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_select_difficulty.imageset
│ │ │ │ │ ├── bg_select_difficulty.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── box.imageset
│ │ │ │ │ ├── box.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_back.imageset
│ │ │ │ │ ├── btn_back.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car1.imageset
│ │ │ │ │ ├── btn_car1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car2.imageset
│ │ │ │ │ ├── btn_car2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car3.imageset
│ │ │ │ │ ├── btn_car3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_easy.imageset
│ │ │ │ │ ├── btn_easy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_gamecenter.imageset
│ │ │ │ │ ├── btn_gamecenter.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_hard.imageset
│ │ │ │ │ ├── btn_hard.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_medium.imageset
│ │ │ │ │ ├── btn_medium.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_pause.imageset
│ │ │ │ │ ├── btn_pause.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_play.imageset
│ │ │ │ │ ├── btn_play.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── button_green.imageset
│ │ │ │ │ ├── button_green.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── button_red.imageset
│ │ │ │ │ ├── button_red.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_1.imageset
│ │ │ │ │ ├── car_1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_2.imageset
│ │ │ │ │ ├── car_2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_3.imageset
│ │ │ │ │ ├── car_3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── circuit_racer_logo.imageset
│ │ │ │ │ ├── circuit_racer_logo.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── knob.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── knob.png
│ │ │ │ ├── track_1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── track_1.png
│ │ │ │ ├── track_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── track_2.png
│ │ │ │ └── track_3.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── track_3.png
│ │ │ ├── Info.plist
│ │ │ ├── InputSources
│ │ │ │ ├── AnalogControl.swift
│ │ │ │ ├── ButtonNode.swift
│ │ │ │ └── InputControlProtocol.swift
│ │ │ ├── Resources
│ │ │ │ ├── Levels
│ │ │ │ │ └── LevelDetails.plist
│ │ │ │ └── Sounds
│ │ │ │ ├── box.wav
│ │ │ │ ├── button_press.wav
│ │ │ │ ├── circuitracer.mp3
│ │ │ │ └── lap.wav
│ │ │ ├── Scenes
│ │ │ │ ├── CarType.swift
│ │ │ │ ├── FailureScene
│ │ │ │ │ └── FailureScene.sks
│ │ │ │ ├── GameScene
│ │ │ │ │ ├── GameScene+Buttons.swift
│ │ │ │ │ ├── GameScene.sks
│ │ │ │ │ └── GameScene.swift
│ │ │ │ ├── GameStates
│ │ │ │ │ ├── GameActiveState.swift
│ │ │ │ │ ├── GameFailureState.swift
│ │ │ │ │ ├── GameOverlayState.swift
│ │ │ │ │ ├── GamePauseState.swift
│ │ │ │ │ └── GameSuccessState.swift
│ │ │ │ ├── LevelType.swift
│ │ │ │ ├── PauseScene
│ │ │ │ │ └── PauseScene.sks
│ │ │ │ ├── SceneOverlay.swift
│ │ │ │ ├── SKSpriteNode+CircuitRacer.swift
│ │ │ │ └── SuccessScene
│ │ │ │ └── SuccessScene.sks
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ └── ViewControllers
│ │ │ ├── GameViewController.swift
│ │ │ ├── HomeScreenViewController.swift
│ │ │ ├── SelectCarViewController.swift
│ │ │ └── SelectLevelViewController.swift
│ │ └── CircuitRacer.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── Resources
│ ├── achievement-amateur.png
│ ├── achievement-destruction.png
│ ├── achievement-intermediate.png
│ ├── achievement-professional.png
│ └── Large_App_Icon.png
├── 22-game-center-leaderboards
│ ├── final
│ │ └── CircuitRacer
│ │ ├── CircuitRacer
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── CircuitRacerAssets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon_29@2x-1.png
│ │ │ │ │ ├── Icon_29@2x.png
│ │ │ │ │ ├── Icon_29@3x.png
│ │ │ │ │ ├── Icon_29.png
│ │ │ │ │ ├── Icon_40@2x-1.png
│ │ │ │ │ ├── Icon_40@2x.png
│ │ │ │ │ ├── Icon_40@3x.png
│ │ │ │ │ ├── Icon_40.png
│ │ │ │ │ ├── Icon_60@2x.png
│ │ │ │ │ ├── Icon_60@3x.png
│ │ │ │ │ ├── Icon_76@2x.png
│ │ │ │ │ ├── Icon_76.png
│ │ │ │ │ └── Icon_83.5@2x.png
│ │ │ │ ├── base.imageset
│ │ │ │ │ ├── base.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_main_menu.imageset
│ │ │ │ │ ├── bg_main_menu.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_select_car.imageset
│ │ │ │ │ ├── bg_select_car.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_select_difficulty.imageset
│ │ │ │ │ ├── bg_select_difficulty.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── box.imageset
│ │ │ │ │ ├── box.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_back.imageset
│ │ │ │ │ ├── btn_back.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car1.imageset
│ │ │ │ │ ├── btn_car1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car2.imageset
│ │ │ │ │ ├── btn_car2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car3.imageset
│ │ │ │ │ ├── btn_car3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_easy.imageset
│ │ │ │ │ ├── btn_easy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_gamecenter.imageset
│ │ │ │ │ ├── btn_gamecenter.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_hard.imageset
│ │ │ │ │ ├── btn_hard.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_medium.imageset
│ │ │ │ │ ├── btn_medium.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_pause.imageset
│ │ │ │ │ ├── btn_pause.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_play.imageset
│ │ │ │ │ ├── btn_play.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── button_green.imageset
│ │ │ │ │ ├── button_green.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── button_red.imageset
│ │ │ │ │ ├── button_red.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_1.imageset
│ │ │ │ │ ├── car_1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_2.imageset
│ │ │ │ │ ├── car_2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_3.imageset
│ │ │ │ │ ├── car_3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── circuit_racer_logo.imageset
│ │ │ │ │ ├── circuit_racer_logo.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── knob.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── knob.png
│ │ │ │ ├── track_1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── track_1.png
│ │ │ │ ├── track_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── track_2.png
│ │ │ │ └── track_3.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── track_3.png
│ │ │ ├── GameKit
│ │ │ │ ├── AchievementsHelper.swift
│ │ │ │ └── GameKitHelper.swift
│ │ │ ├── Info.plist
│ │ │ ├── InputSources
│ │ │ │ ├── AnalogControl.swift
│ │ │ │ ├── ButtonNode.swift
│ │ │ │ └── InputControlProtocol.swift
│ │ │ ├── Resources
│ │ │ │ ├── Levels
│ │ │ │ │ └── LevelDetails.plist
│ │ │ │ └── Sounds
│ │ │ │ ├── box.wav
│ │ │ │ ├── button_press.wav
│ │ │ │ ├── circuitracer.mp3
│ │ │ │ └── lap.wav
│ │ │ ├── Scenes
│ │ │ │ ├── CarType.swift
│ │ │ │ ├── FailureScene
│ │ │ │ │ └── FailureScene.sks
│ │ │ │ ├── GameScene
│ │ │ │ │ ├── GameScene+Buttons.swift
│ │ │ │ │ ├── GameScene.sks
│ │ │ │ │ └── GameScene.swift
│ │ │ │ ├── GameStates
│ │ │ │ │ ├── GameActiveState.swift
│ │ │ │ │ ├── GameFailureState.swift
│ │ │ │ │ ├── GameOverlayState.swift
│ │ │ │ │ ├── GamePauseState.swift
│ │ │ │ │ └── GameSuccessState.swift
│ │ │ │ ├── LevelType.swift
│ │ │ │ ├── PauseScene
│ │ │ │ │ └── PauseScene.sks
│ │ │ │ ├── SceneOverlay.swift
│ │ │ │ ├── SKSpriteNode+CircuitRacer.swift
│ │ │ │ └── SuccessScene
│ │ │ │ └── SuccessScene.sks
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ └── ViewControllers
│ │ │ ├── CircuitRacerNavigationController.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── HomeScreenViewController.swift
│ │ │ ├── SelectCarViewController.swift
│ │ │ └── SelectLevelViewController.swift
│ │ └── CircuitRacer.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ ├── CircuitRacer
│ │ ├── CircuitRacer
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── CircuitRacerAssets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon_29@2x-1.png
│ │ │ │ │ ├── Icon_29@2x.png
│ │ │ │ │ ├── Icon_29@3x.png
│ │ │ │ │ ├── Icon_29.png
│ │ │ │ │ ├── Icon_40@2x-1.png
│ │ │ │ │ ├── Icon_40@2x.png
│ │ │ │ │ ├── Icon_40@3x.png
│ │ │ │ │ ├── Icon_40.png
│ │ │ │ │ ├── Icon_60@2x.png
│ │ │ │ │ ├── Icon_60@3x.png
│ │ │ │ │ ├── Icon_76@2x.png
│ │ │ │ │ ├── Icon_76.png
│ │ │ │ │ └── Icon_83.5@2x.png
│ │ │ │ ├── base.imageset
│ │ │ │ │ ├── base.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_main_menu.imageset
│ │ │ │ │ ├── bg_main_menu.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_select_car.imageset
│ │ │ │ │ ├── bg_select_car.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_select_difficulty.imageset
│ │ │ │ │ ├── bg_select_difficulty.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── box.imageset
│ │ │ │ │ ├── box.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_back.imageset
│ │ │ │ │ ├── btn_back.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car1.imageset
│ │ │ │ │ ├── btn_car1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car2.imageset
│ │ │ │ │ ├── btn_car2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car3.imageset
│ │ │ │ │ ├── btn_car3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_easy.imageset
│ │ │ │ │ ├── btn_easy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_gamecenter.imageset
│ │ │ │ │ ├── btn_gamecenter.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_hard.imageset
│ │ │ │ │ ├── btn_hard.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_medium.imageset
│ │ │ │ │ ├── btn_medium.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_pause.imageset
│ │ │ │ │ ├── btn_pause.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_play.imageset
│ │ │ │ │ ├── btn_play.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── button_green.imageset
│ │ │ │ │ ├── button_green.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── button_red.imageset
│ │ │ │ │ ├── button_red.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_1.imageset
│ │ │ │ │ ├── car_1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_2.imageset
│ │ │ │ │ ├── car_2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_3.imageset
│ │ │ │ │ ├── car_3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── circuit_racer_logo.imageset
│ │ │ │ │ ├── circuit_racer_logo.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── knob.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── knob.png
│ │ │ │ ├── track_1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── track_1.png
│ │ │ │ ├── track_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── track_2.png
│ │ │ │ └── track_3.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── track_3.png
│ │ │ ├── GameKit
│ │ │ │ ├── AchievementsHelper.swift
│ │ │ │ └── GameKitHelper.swift
│ │ │ ├── Info.plist
│ │ │ ├── InputSources
│ │ │ │ ├── AnalogControl.swift
│ │ │ │ ├── ButtonNode.swift
│ │ │ │ └── InputControlProtocol.swift
│ │ │ ├── Resources
│ │ │ │ ├── Levels
│ │ │ │ │ └── LevelDetails.plist
│ │ │ │ └── Sounds
│ │ │ │ ├── box.wav
│ │ │ │ ├── button_press.wav
│ │ │ │ ├── circuitracer.mp3
│ │ │ │ └── lap.wav
│ │ │ ├── Scenes
│ │ │ │ ├── CarType.swift
│ │ │ │ ├── FailureScene
│ │ │ │ │ └── FailureScene.sks
│ │ │ │ ├── GameScene
│ │ │ │ │ ├── GameScene+Buttons.swift
│ │ │ │ │ ├── GameScene.sks
│ │ │ │ │ └── GameScene.swift
│ │ │ │ ├── GameStates
│ │ │ │ │ ├── GameActiveState.swift
│ │ │ │ │ ├── GameFailureState.swift
│ │ │ │ │ ├── GameOverlayState.swift
│ │ │ │ │ ├── GamePauseState.swift
│ │ │ │ │ └── GameSuccessState.swift
│ │ │ │ ├── LevelType.swift
│ │ │ │ ├── PauseScene
│ │ │ │ │ └── PauseScene.sks
│ │ │ │ ├── SceneOverlay.swift
│ │ │ │ ├── SKSpriteNode+CircuitRacer.swift
│ │ │ │ └── SuccessScene
│ │ │ │ └── SuccessScene.sks
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ └── ViewControllers
│ │ │ ├── CircuitRacerNavigationController.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── HomeScreenViewController.swift
│ │ │ ├── SelectCarViewController.swift
│ │ │ └── SelectLevelViewController.swift
│ │ └── CircuitRacer.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── Resources
│ ├── leaderboard-blue.png
│ ├── leaderboard-red.png
│ └── leaderboard-yellow.png
├── 23-replaykit
│ ├── final
│ │ └── CircuitRacer
│ │ ├── CircuitRacer
│ │ │ ├── AppDelegate.swift
│ │ │ ├── AutoRecordProtocol.swift
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── CircuitRacerAssets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon_29@2x-1.png
│ │ │ │ │ ├── Icon_29@2x.png
│ │ │ │ │ ├── Icon_29@3x.png
│ │ │ │ │ ├── Icon_29.png
│ │ │ │ │ ├── Icon_40@2x-1.png
│ │ │ │ │ ├── Icon_40@2x.png
│ │ │ │ │ ├── Icon_40@3x.png
│ │ │ │ │ ├── Icon_40.png
│ │ │ │ │ ├── Icon_60@2x.png
│ │ │ │ │ ├── Icon_60@3x.png
│ │ │ │ │ ├── Icon_76@2x.png
│ │ │ │ │ ├── Icon_76.png
│ │ │ │ │ └── Icon_83.5@2x.png
│ │ │ │ ├── base.imageset
│ │ │ │ │ ├── base.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_main_menu.imageset
│ │ │ │ │ ├── bg_main_menu.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_select_car.imageset
│ │ │ │ │ ├── bg_select_car.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_select_difficulty.imageset
│ │ │ │ │ ├── bg_select_difficulty.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── box.imageset
│ │ │ │ │ ├── box.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_autorecord_off.imageset
│ │ │ │ │ ├── btn_autorecord_off.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_autorecord_on.imageset
│ │ │ │ │ ├── btn_autorecord_on.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_autorecord_small_off.imageset
│ │ │ │ │ ├── btn_autorecord_small_off.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_autorecord_small_on.imageset
│ │ │ │ │ ├── btn_autorecord_small_on.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_back.imageset
│ │ │ │ │ ├── btn_back.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car1.imageset
│ │ │ │ │ ├── btn_car1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car2.imageset
│ │ │ │ │ ├── btn_car2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car3.imageset
│ │ │ │ │ ├── btn_car3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_easy.imageset
│ │ │ │ │ ├── btn_easy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_gamecenter.imageset
│ │ │ │ │ ├── btn_gamecenter.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_hard.imageset
│ │ │ │ │ ├── btn_hard.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_medium.imageset
│ │ │ │ │ ├── btn_medium.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_pause.imageset
│ │ │ │ │ ├── btn_pause.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_play.imageset
│ │ │ │ │ ├── btn_play.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── button_green.imageset
│ │ │ │ │ ├── button_green.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── button_red.imageset
│ │ │ │ │ ├── button_red.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_1.imageset
│ │ │ │ │ ├── car_1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_2.imageset
│ │ │ │ │ ├── car_2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_3.imageset
│ │ │ │ │ ├── car_3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── circuit_racer_logo.imageset
│ │ │ │ │ ├── circuit_racer_logo.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── indicator_rec.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── indicator_rec.png
│ │ │ │ ├── knob.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── knob.png
│ │ │ │ ├── level_1_preview_frame.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── level_1_preview_frame.png
│ │ │ │ ├── level_2_preview_frame.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── level_2_preview_frame.png
│ │ │ │ ├── level_3_preview_frame.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── level_3_preview_frame.png
│ │ │ │ ├── play_icon.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── play_icon.png
│ │ │ │ ├── track_1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── track_1.png
│ │ │ │ ├── track_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── track_2.png
│ │ │ │ └── track_3.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── track_3.png
│ │ │ ├── GameKit
│ │ │ │ ├── AchievementsHelper.swift
│ │ │ │ └── GameKitHelper.swift
│ │ │ ├── Info.plist
│ │ │ ├── InputSources
│ │ │ │ ├── AnalogControl.swift
│ │ │ │ ├── ButtonNode.swift
│ │ │ │ └── InputControlProtocol.swift
│ │ │ ├── Resources
│ │ │ │ ├── Levels
│ │ │ │ │ └── LevelDetails.plist
│ │ │ │ └── Sounds
│ │ │ │ ├── box.wav
│ │ │ │ ├── button_press.wav
│ │ │ │ ├── circuitracer.mp3
│ │ │ │ └── lap.wav
│ │ │ ├── Scenes
│ │ │ │ ├── CarType.swift
│ │ │ │ ├── FailureScene
│ │ │ │ │ └── FailureScene.sks
│ │ │ │ ├── GameScene
│ │ │ │ │ ├── GameScene+Buttons.swift
│ │ │ │ │ ├── GameScene.sks
│ │ │ │ │ └── GameScene.swift
│ │ │ │ ├── GameStates
│ │ │ │ │ ├── GameActiveState.swift
│ │ │ │ │ ├── GameFailureState.swift
│ │ │ │ │ ├── GameOverlayState.swift
│ │ │ │ │ ├── GamePauseState.swift
│ │ │ │ │ └── GameSuccessState.swift
│ │ │ │ ├── LevelType.swift
│ │ │ │ ├── PauseScene
│ │ │ │ │ └── PauseScene.sks
│ │ │ │ ├── SceneOverlay.swift
│ │ │ │ ├── SKSpriteNode+CircuitRacer.swift
│ │ │ │ └── SuccessScene
│ │ │ │ └── SuccessScene.sks
│ │ │ ├── ScreenRecording
│ │ │ │ ├── GameScene+ScreenRecording.swift
│ │ │ │ └── HomeScreenViewController+ScreenRecording.swift
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ └── ViewControllers
│ │ │ ├── CircuitRacerNavigationController.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── HomeScreenViewController.swift
│ │ │ ├── SelectCarViewController.swift
│ │ │ ├── SelectLevelViewController.swift
│ │ │ └── UIViewController+AutoRecord.swift
│ │ └── CircuitRacer.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── starter
│ ├── CircuitRacer
│ │ ├── CircuitRacer
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ ├── CircuitRacerAssets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon_29@2x-1.png
│ │ │ │ │ ├── Icon_29@2x.png
│ │ │ │ │ ├── Icon_29@3x.png
│ │ │ │ │ ├── Icon_29.png
│ │ │ │ │ ├── Icon_40@2x-1.png
│ │ │ │ │ ├── Icon_40@2x.png
│ │ │ │ │ ├── Icon_40@3x.png
│ │ │ │ │ ├── Icon_40.png
│ │ │ │ │ ├── Icon_60@2x.png
│ │ │ │ │ ├── Icon_60@3x.png
│ │ │ │ │ ├── Icon_76@2x.png
│ │ │ │ │ ├── Icon_76.png
│ │ │ │ │ └── Icon_83.5@2x.png
│ │ │ │ ├── base.imageset
│ │ │ │ │ ├── base.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_main_menu.imageset
│ │ │ │ │ ├── bg_main_menu.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_select_car.imageset
│ │ │ │ │ ├── bg_select_car.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── bg_select_difficulty.imageset
│ │ │ │ │ ├── bg_select_difficulty.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── box.imageset
│ │ │ │ │ ├── box.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_back.imageset
│ │ │ │ │ ├── btn_back.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car1.imageset
│ │ │ │ │ ├── btn_car1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car2.imageset
│ │ │ │ │ ├── btn_car2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_car3.imageset
│ │ │ │ │ ├── btn_car3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_easy.imageset
│ │ │ │ │ ├── btn_easy.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_gamecenter.imageset
│ │ │ │ │ ├── btn_gamecenter.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_hard.imageset
│ │ │ │ │ ├── btn_hard.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_medium.imageset
│ │ │ │ │ ├── btn_medium.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_pause.imageset
│ │ │ │ │ ├── btn_pause.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── btn_play.imageset
│ │ │ │ │ ├── btn_play.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── button_green.imageset
│ │ │ │ │ ├── button_green.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── button_red.imageset
│ │ │ │ │ ├── button_red.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_1.imageset
│ │ │ │ │ ├── car_1.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_2.imageset
│ │ │ │ │ ├── car_2.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── car_3.imageset
│ │ │ │ │ ├── car_3.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── circuit_racer_logo.imageset
│ │ │ │ │ ├── circuit_racer_logo.png
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Contents.json
│ │ │ │ ├── knob.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── knob.png
│ │ │ │ ├── track_1.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── track_1.png
│ │ │ │ ├── track_2.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── track_2.png
│ │ │ │ └── track_3.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── track_3.png
│ │ │ ├── GameKit
│ │ │ │ ├── AchievementsHelper.swift
│ │ │ │ └── GameKitHelper.swift
│ │ │ ├── Info.plist
│ │ │ ├── InputSources
│ │ │ │ ├── AnalogControl.swift
│ │ │ │ ├── ButtonNode.swift
│ │ │ │ └── InputControlProtocol.swift
│ │ │ ├── Resources
│ │ │ │ ├── Levels
│ │ │ │ │ └── LevelDetails.plist
│ │ │ │ └── Sounds
│ │ │ │ ├── box.wav
│ │ │ │ ├── button_press.wav
│ │ │ │ ├── circuitracer.mp3
│ │ │ │ └── lap.wav
│ │ │ ├── Scenes
│ │ │ │ ├── CarType.swift
│ │ │ │ ├── FailureScene
│ │ │ │ │ └── FailureScene.sks
│ │ │ │ ├── GameScene
│ │ │ │ │ ├── GameScene+Buttons.swift
│ │ │ │ │ ├── GameScene.sks
│ │ │ │ │ └── GameScene.swift
│ │ │ │ ├── GameStates
│ │ │ │ │ ├── GameActiveState.swift
│ │ │ │ │ ├── GameFailureState.swift
│ │ │ │ │ ├── GameOverlayState.swift
│ │ │ │ │ ├── GamePauseState.swift
│ │ │ │ │ └── GameSuccessState.swift
│ │ │ │ ├── LevelType.swift
│ │ │ │ ├── PauseScene
│ │ │ │ │ └── PauseScene.sks
│ │ │ │ ├── SceneOverlay.swift
│ │ │ │ ├── SKSpriteNode+CircuitRacer.swift
│ │ │ │ └── SuccessScene
│ │ │ │ └── SuccessScene.sks
│ │ │ ├── SKTUtils
│ │ │ │ ├── CGFloat+Extensions.swift
│ │ │ │ ├── CGPoint+Extensions.swift
│ │ │ │ ├── CGVector+Extensions.swift
│ │ │ │ ├── Int+Extensions.swift
│ │ │ │ ├── SKAction+Extensions.swift
│ │ │ │ ├── SKAction+SpecialEffects.swift
│ │ │ │ ├── SKColor+Extensions.swift
│ │ │ │ ├── SKNode+Extensions.swift
│ │ │ │ ├── SKTAudio.swift
│ │ │ │ ├── SKTEffects.swift
│ │ │ │ ├── SKTTimingFunctions.swift
│ │ │ │ └── Vector3.swift
│ │ │ └── ViewControllers
│ │ │ ├── CircuitRacerNavigationController.swift
│ │ │ ├── GameViewController.swift
│ │ │ ├── HomeScreenViewController.swift
│ │ │ ├── SelectCarViewController.swift
│ │ │ └── SelectLevelViewController.swift
│ │ └── CircuitRacer.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── Resources
│ ├── btn_autorecord_off.png
│ ├── btn_autorecord_on.png
│ ├── btn_autorecord_small_off.png
│ ├── btn_autorecord_small_on.png
│ ├── indicator_rec.png
│ ├── level_1_preview_frame.png
│ ├── level_2_preview_frame.png
│ ├── level_3_preview_frame.png
│ └── play_icon.png
└── 24-2d-art-for-programmers
├── challenge
│ ├── dog.ai
│ └── mouse.ai
├── final
│ ├── cat-01-outlines.ai
│ ├── cat-02-width-tool.ai
│ ├── cat-03-basic-fill.ai
│ ├── cat-04-eyes.ai
│ ├── cat-05-tail-and-toes.ai
│ ├── cat-06-shaded.ai
│ └── cat-07-finished.ai
└── starter
└── Cat-Sketch.png
5717 directories, 7675 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论