├── README.md
├── Data Assets
├── icon.png
├── gameoverpng
├── redline.png
├── restart.png
├── Fruit
│ ├── kiwi.png
│ ├── cherry.png
│ ├── grape.png
│ ├── lemon.png
│ ├── orange.png
│ ├── peach.png
│ ├── tomato.png
│ ├── cocount.png
│ ├── pineapple.png
│ ├── watermelon.png
│ └── halfwatermelon.png
├── number
│ ├── 0.png
│ ├── 1.png
│ ├── 2.png
│ ├── 3.png
│ ├── 4.png
│ ├── 5.png
│ ├── 6.png
│ ├── 7.png
│ ├── 8.png
│ ├── 9.png
│ └── .DS_Store
├── yellowlight.png
└── Explode
│ ├── .DS_Store
│ ├── purple.png
│ ├── yellow.png
│ ├── redpiece.png
│ ├── greenpiece.png
│ ├── orangepiece.png
│ ├── purplepiece.png
│ └── yellowpiece.png
├── Watermelon
├── Sounds
│ ├── bomb.mp3
│ ├── win.mp3
│ └── falldown.mp3
├── Bootstrap
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ ├── Fruit
│ │ │ ├── Contents.json
│ │ │ ├── kiwi.imageset
│ │ │ │ ├── kiwi.png
│ │ │ │ └── Contents.json
│ │ │ ├── grape.imageset
│ │ │ │ ├── grape.png
│ │ │ │ └── Contents.json
│ │ │ ├── lemon.imageset
│ │ │ │ ├── lemon.png
│ │ │ │ └── Contents.json
│ │ │ ├── peach.imageset
│ │ │ │ ├── peach.png
│ │ │ │ └── Contents.json
│ │ │ ├── cherry.imageset
│ │ │ │ ├── cherry.png
│ │ │ │ └── Contents.json
│ │ │ ├── cocount.imageset
│ │ │ │ ├── cocount.png
│ │ │ │ └── Contents.json
│ │ │ ├── orange.imageset
│ │ │ │ ├── orange.png
│ │ │ │ └── Contents.json
│ │ │ ├── tomato.imageset
│ │ │ │ ├── tomato.png
│ │ │ │ └── Contents.json
│ │ │ ├── pineapple.imageset
│ │ │ │ ├── pineapple.png
│ │ │ │ └── Contents.json
│ │ │ ├── watermelon.imageset
│ │ │ │ ├── watermelon.png
│ │ │ │ └── Contents.json
│ │ │ └── halfwatermelon.imageset
│ │ │ │ ├── halfwatermelon.png
│ │ │ │ └── Contents.json
│ │ ├── number
│ │ │ ├── 0.imageset
│ │ │ │ ├── 0.png
│ │ │ │ └── Contents.json
│ │ │ ├── 1.imageset
│ │ │ │ ├── 1.png
│ │ │ │ └── Contents.json
│ │ │ ├── 2.imageset
│ │ │ │ ├── 2.png
│ │ │ │ └── Contents.json
│ │ │ ├── 3.imageset
│ │ │ │ ├── 3.png
│ │ │ │ └── Contents.json
│ │ │ ├── 4.imageset
│ │ │ │ ├── 4.png
│ │ │ │ └── Contents.json
│ │ │ ├── 5.imageset
│ │ │ │ ├── 5.png
│ │ │ │ └── Contents.json
│ │ │ ├── 6.imageset
│ │ │ │ ├── 6.png
│ │ │ │ └── Contents.json
│ │ │ ├── 7.imageset
│ │ │ │ ├── 7.png
│ │ │ │ └── Contents.json
│ │ │ ├── 8.imageset
│ │ │ │ ├── 8.png
│ │ │ │ └── Contents.json
│ │ │ ├── 9.imageset
│ │ │ │ ├── 9.png
│ │ │ │ └── Contents.json
│ │ │ └── Contents.json
│ │ ├── AppIcon.appiconset
│ │ │ ├── icon.png
│ │ │ ├── icon-40.png
│ │ │ ├── icon-72.png
│ │ │ ├── icon-76.png
│ │ │ ├── icon@2x.png
│ │ │ ├── icon-40@2x.png
│ │ │ ├── icon-40@3x.png
│ │ │ ├── icon-60@2x.png
│ │ │ ├── icon-60@3x.png
│ │ │ ├── icon-72@2x.png
│ │ │ ├── icon-76@2x.png
│ │ │ ├── icon-small.png
│ │ │ ├── icon-83.5@2x.png
│ │ │ ├── icon-small-50.png
│ │ │ ├── icon-small@2x.png
│ │ │ ├── icon-small@3x.png
│ │ │ ├── ios-marketing.png
│ │ │ ├── icon-small-50@2x.png
│ │ │ ├── notification-icon@2x.png
│ │ │ ├── notification-icon@3x.png
│ │ │ ├── notification-icon~ipad.png
│ │ │ ├── notification-icon~ipad@2x.png
│ │ │ └── Contents.json
│ │ ├── redline.imageset
│ │ │ ├── redline.png
│ │ │ └── Contents.json
│ │ ├── Explode
│ │ │ ├── orange.imageset
│ │ │ │ ├── orange.png
│ │ │ │ └── Contents.json
│ │ │ ├── purple.imageset
│ │ │ │ ├── purple.png
│ │ │ │ └── Contents.json
│ │ │ ├── yellow.imageset
│ │ │ │ ├── yellow.png
│ │ │ │ └── Contents.json
│ │ │ ├── redpiece.imageset
│ │ │ │ ├── redpiece.png
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── greenpiece.imageset
│ │ │ │ ├── greenpiece.png
│ │ │ │ └── Contents.json
│ │ │ ├── orangepiece.imageset
│ │ │ │ ├── orangepiece.png
│ │ │ │ └── Contents.json
│ │ │ ├── purplepiece.imageset
│ │ │ │ ├── purplepiece.png
│ │ │ │ └── Contents.json
│ │ │ └── yellowpiece.imageset
│ │ │ │ ├── yellowpiece.png
│ │ │ │ └── Contents.json
│ │ ├── restart.imageset
│ │ │ ├── restart copy.png
│ │ │ └── Contents.json
│ │ ├── gameover.imageset
│ │ │ ├── gameover copy.png
│ │ │ └── Contents.json
│ │ ├── yellowlight.imageset
│ │ │ ├── yellowlight.png
│ │ │ └── Contents.json
│ │ └── AccentColor.colorset
│ │ │ └── Contents.json
│ ├── WatermelonApp.swift
│ └── ContentView.swift
├── Preview Content
│ └── Preview Assets.xcassets
│ │ └── Contents.json
├── Scene
│ ├── GameScene+RedLine.swift
│ ├── GameScene+Touches.swift
│ ├── GameScene.swift
│ ├── GameScene+LoadUI.swift
│ └── GameScene+Collisions.swift
├── Utils
│ ├── AudioUtil.swift
│ ├── FruitTexture.swift
│ └── FruitUtil.swift
└── Info.plist
└── Watermelon.xcodeproj
├── project.xcworkspace
├── contents.xcworkspacedata
├── xcuserdata
│ └── steveyu.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
└── xcshareddata
│ └── IDEWorkspaceChecks.plist
├── xcuserdata
└── steveyu.xcuserdatad
│ └── xcschemes
│ └── xcschememanagement.plist
└── project.pbxproj
/README.md:
--------------------------------------------------------------------------------
1 | # Mix-watermelon
2 |
3 | 合成大西瓜 SwiftUI & SpriteKit
4 |
--------------------------------------------------------------------------------
/Data Assets/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/icon.png
--------------------------------------------------------------------------------
/Data Assets/gameoverpng:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/gameoverpng
--------------------------------------------------------------------------------
/Data Assets/redline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/redline.png
--------------------------------------------------------------------------------
/Data Assets/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/restart.png
--------------------------------------------------------------------------------
/Data Assets/Fruit/kiwi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Fruit/kiwi.png
--------------------------------------------------------------------------------
/Data Assets/number/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/number/0.png
--------------------------------------------------------------------------------
/Data Assets/number/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/number/1.png
--------------------------------------------------------------------------------
/Data Assets/number/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/number/2.png
--------------------------------------------------------------------------------
/Data Assets/number/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/number/3.png
--------------------------------------------------------------------------------
/Data Assets/number/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/number/4.png
--------------------------------------------------------------------------------
/Data Assets/number/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/number/5.png
--------------------------------------------------------------------------------
/Data Assets/number/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/number/6.png
--------------------------------------------------------------------------------
/Data Assets/number/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/number/7.png
--------------------------------------------------------------------------------
/Data Assets/number/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/number/8.png
--------------------------------------------------------------------------------
/Data Assets/number/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/number/9.png
--------------------------------------------------------------------------------
/Watermelon/Sounds/bomb.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Sounds/bomb.mp3
--------------------------------------------------------------------------------
/Watermelon/Sounds/win.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Sounds/win.mp3
--------------------------------------------------------------------------------
/Data Assets/Fruit/cherry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Fruit/cherry.png
--------------------------------------------------------------------------------
/Data Assets/Fruit/grape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Fruit/grape.png
--------------------------------------------------------------------------------
/Data Assets/Fruit/lemon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Fruit/lemon.png
--------------------------------------------------------------------------------
/Data Assets/Fruit/orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Fruit/orange.png
--------------------------------------------------------------------------------
/Data Assets/Fruit/peach.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Fruit/peach.png
--------------------------------------------------------------------------------
/Data Assets/Fruit/tomato.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Fruit/tomato.png
--------------------------------------------------------------------------------
/Data Assets/number/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/number/.DS_Store
--------------------------------------------------------------------------------
/Data Assets/yellowlight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/yellowlight.png
--------------------------------------------------------------------------------
/Data Assets/Explode/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Explode/.DS_Store
--------------------------------------------------------------------------------
/Data Assets/Explode/purple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Explode/purple.png
--------------------------------------------------------------------------------
/Data Assets/Explode/yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Explode/yellow.png
--------------------------------------------------------------------------------
/Data Assets/Fruit/cocount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Fruit/cocount.png
--------------------------------------------------------------------------------
/Data Assets/Fruit/pineapple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Fruit/pineapple.png
--------------------------------------------------------------------------------
/Watermelon/Sounds/falldown.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Sounds/falldown.mp3
--------------------------------------------------------------------------------
/Data Assets/Explode/redpiece.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Explode/redpiece.png
--------------------------------------------------------------------------------
/Data Assets/Fruit/watermelon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Fruit/watermelon.png
--------------------------------------------------------------------------------
/Data Assets/Explode/greenpiece.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Explode/greenpiece.png
--------------------------------------------------------------------------------
/Data Assets/Explode/orangepiece.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Explode/orangepiece.png
--------------------------------------------------------------------------------
/Data Assets/Explode/purplepiece.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Explode/purplepiece.png
--------------------------------------------------------------------------------
/Data Assets/Explode/yellowpiece.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Explode/yellowpiece.png
--------------------------------------------------------------------------------
/Data Assets/Fruit/halfwatermelon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Data Assets/Fruit/halfwatermelon.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Watermelon/Preview Content/Preview Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/0.imageset/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/number/0.imageset/0.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/1.imageset/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/number/1.imageset/1.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/2.imageset/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/number/2.imageset/2.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/3.imageset/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/number/3.imageset/3.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/4.imageset/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/number/4.imageset/4.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/5.imageset/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/number/5.imageset/5.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/6.imageset/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/number/6.imageset/6.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/7.imageset/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/number/7.imageset/7.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/8.imageset/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/number/8.imageset/8.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/9.imageset/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/number/9.imageset/9.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/kiwi.imageset/kiwi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Fruit/kiwi.imageset/kiwi.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/redline.imageset/redline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/redline.imageset/redline.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-40.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-72.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-76.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon@2x.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/grape.imageset/grape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Fruit/grape.imageset/grape.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/lemon.imageset/lemon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Fruit/lemon.imageset/lemon.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/peach.imageset/peach.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Fruit/peach.imageset/peach.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-small.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/orange.imageset/orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Explode/orange.imageset/orange.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/purple.imageset/purple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Explode/purple.imageset/purple.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/yellow.imageset/yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Explode/yellow.imageset/yellow.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/cherry.imageset/cherry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Fruit/cherry.imageset/cherry.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/cocount.imageset/cocount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Fruit/cocount.imageset/cocount.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/orange.imageset/orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Fruit/orange.imageset/orange.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/tomato.imageset/tomato.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Fruit/tomato.imageset/tomato.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/restart.imageset/restart copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/restart.imageset/restart copy.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-small-50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-small-50.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-small@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-small@2x.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-small@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-small@3x.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/ios-marketing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/ios-marketing.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/gameover.imageset/gameover copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/gameover.imageset/gameover copy.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/yellowlight.imageset/yellowlight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/yellowlight.imageset/yellowlight.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-small-50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/icon-small-50@2x.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/redpiece.imageset/redpiece.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Explode/redpiece.imageset/redpiece.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/pineapple.imageset/pineapple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Fruit/pineapple.imageset/pineapple.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/watermelon.imageset/watermelon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Fruit/watermelon.imageset/watermelon.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/notification-icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/notification-icon@2x.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/notification-icon@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/notification-icon@3x.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "properties" : {
7 | "provides-namespace" : true
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/greenpiece.imageset/greenpiece.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Explode/greenpiece.imageset/greenpiece.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/orangepiece.imageset/orangepiece.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Explode/orangepiece.imageset/orangepiece.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/purplepiece.imageset/purplepiece.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Explode/purplepiece.imageset/purplepiece.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/yellowpiece.imageset/yellowpiece.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Explode/yellowpiece.imageset/yellowpiece.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "properties" : {
7 | "provides-namespace" : true
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Watermelon.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/notification-icon~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/notification-icon~ipad.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/notification-icon~ipad@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/notification-icon~ipad@2x.png
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/halfwatermelon.imageset/halfwatermelon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon/Bootstrap/Assets.xcassets/Fruit/halfwatermelon.imageset/halfwatermelon.png
--------------------------------------------------------------------------------
/Watermelon.xcodeproj/project.xcworkspace/xcuserdata/steveyu.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SteveYuOWO/Mix-watermelon/HEAD/Watermelon.xcodeproj/project.xcworkspace/xcuserdata/steveyu.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/0.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "0.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/1.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "1.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/2.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "2.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/3.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "3.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/4.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "4.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/5.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "5.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/6.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "6.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/7.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "7.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/8.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "8.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/number/9.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "9.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/grape.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "grape.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/kiwi.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "kiwi.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/lemon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "lemon.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/peach.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "peach.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/redline.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "redline.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/orange.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "orange.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/purple.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "purple.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/yellow.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "yellow.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/cherry.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "cherry.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/cocount.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "cocount.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/orange.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "orange.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/tomato.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "tomato.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/gameover.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "gameover copy.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/restart.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "restart copy.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/yellowlight.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "yellowlight.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/redpiece.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "redpiece.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/pineapple.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "pineapple.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/watermelon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "watermelon.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/greenpiece.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "greenpiece.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/orangepiece.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "orangepiece.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/purplepiece.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "purplepiece.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Explode/yellowpiece.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "yellowpiece.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/Fruit/halfwatermelon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "halfwatermelon.png",
5 | "idiom" : "universal"
6 | }
7 | ],
8 | "info" : {
9 | "author" : "xcode",
10 | "version" : 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Watermelon.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/WatermelonApp.swift:
--------------------------------------------------------------------------------
1 | //
2 | // WatermelonApp.swift
3 | // Watermelon
4 | //
5 | // Created by Steve Yu on 2021/1/28.
6 | //
7 |
8 | import SwiftUI
9 |
10 | @main
11 | struct WatermelonApp: App {
12 | var body: some Scene {
13 | WindowGroup {
14 | ContentView()
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Watermelon.xcodeproj/xcuserdata/steveyu.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Watermelon.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.616",
9 | "green" : "0.906",
10 | "red" : "1.000"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/ContentView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContentView.swift
3 | // Watermelon
4 | //
5 | // Created by Steve Yu on 2021/1/28.
6 | //
7 |
8 | import SwiftUI
9 | import SpriteKit
10 |
11 | let screen = UIScreen.main.bounds
12 |
13 | struct ContentView: View {
14 | var scene: SKScene {
15 | let scene = GameScene()
16 |
17 | scene.size = CGSize(width: screen.width, height: screen.height)
18 |
19 | return scene
20 | }
21 | var body: some View {
22 | SpriteView(scene: scene)
23 | .frame(width: screen.width, height: screen.height)
24 | .ignoresSafeArea()
25 | }
26 | }
27 |
28 | struct ContentView_Previews: PreviewProvider {
29 | static var previews: some View {
30 | ContentView()
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Watermelon/Scene/GameScene+RedLine.swift:
--------------------------------------------------------------------------------
1 | //
2 | // GameScene+RedLine.swift
3 | // Watermelon
4 | //
5 | // Created by Steve Yu on 2021/1/29.
6 | //
7 |
8 | import SpriteKit
9 | import SwiftUI
10 |
11 | extension GameScene {
12 | func makeRedline() {
13 | redline = SKSpriteNode(imageNamed: "redline")
14 | redline.anchorPoint = CGPoint.zero
15 | redline.position = CGPoint(x: 0, y: screen.height - 80)
16 | // screen.height - 80 - 150
17 | addChild(redline)
18 | redline.setScale(0)
19 | redline.run(.repeat(.sequence([
20 | .fadeIn(withDuration: 0.4),
21 | .fadeOut(withDuration: 0.4)
22 | ]), count: -1))
23 | }
24 |
25 | func showInRedline() {
26 | redline.setScale(1)
27 | }
28 |
29 | func showOutRedline() {
30 | redline.setScale(0)
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Watermelon/Utils/AudioUtil.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AudioUtil.swift
3 | // Watermelon
4 | //
5 | // Created by Steve Yu on 2021/1/29.
6 | //
7 |
8 | import Foundation
9 | import AVFoundation
10 |
11 | class AudioUtil {
12 |
13 | var resourceName: String
14 |
15 | var player: AVAudioPlayer!
16 |
17 | var playing = false
18 |
19 | init(resourceName: String) {
20 | self.resourceName = resourceName
21 | }
22 | func playAudio() {
23 | if playing { return }
24 | guard let fileUrl = Bundle.main.url(forResource: resourceName, withExtension: "mp3") else { return }
25 | do {
26 | player = try AVAudioPlayer(contentsOf: fileUrl)
27 | player.prepareToPlay()
28 | player.play()
29 | playing = true
30 | } catch let err {
31 | print(err.localizedDescription)
32 | }
33 |
34 | Timer(timeInterval: 1, repeats: false) { _ in
35 | self.playing = false
36 | }.fire()
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Watermelon/Utils/FruitTexture.swift:
--------------------------------------------------------------------------------
1 | //
2 | // FruitTexture.swift
3 | // Watermelon
4 | //
5 | // Created by Steve Yu on 2021/1/29.
6 | //
7 |
8 | import Foundation
9 |
10 | enum FruitTexture: String, CaseIterable {
11 | case cherry = "cherry"
12 | case cocount = "cocount"
13 | case grape = "grape"
14 | case halfwatermelon = "halfwatermelon"
15 | case kiwi = "kiwi"
16 | case lemon = "lemon"
17 | case orange = "orange"
18 | case peach = "peach"
19 | case pineapple = "pineapple"
20 | case tomato = "tomato"
21 | case watermelon = "watermelon"
22 |
23 |
24 | var name: String {
25 | rawValue
26 | }
27 |
28 | var bitmask: UInt32 {
29 | switch self {
30 | case .cherry: return 1 << 1
31 | case .cocount: return 1 << 2
32 | case .grape: return 1 << 3
33 | case .halfwatermelon: return 1 << 4
34 | case .kiwi: return 1 << 5
35 | case .lemon: return 1 << 6
36 | case .orange: return 1 << 7
37 | case .peach: return 1 << 8
38 | case .pineapple: return 1 << 9
39 | case .tomato: return 1 << 10
40 | case .watermelon: return 1 << 11
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/Watermelon/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE)
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UIApplicationSceneManifest
24 |
25 | UIApplicationSupportsMultipleScenes
26 |
27 |
28 | UIApplicationSupportsIndirectInputEvents
29 |
30 | UILaunchScreen
31 |
32 | UIRequiredDeviceCapabilities
33 |
34 | armv7
35 |
36 | UISupportedInterfaceOrientations
37 |
38 | UIInterfaceOrientationPortrait
39 | UIInterfaceOrientationLandscapeLeft
40 | UIInterfaceOrientationLandscapeRight
41 |
42 | UISupportedInterfaceOrientations~ipad
43 |
44 | UIInterfaceOrientationPortrait
45 | UIInterfaceOrientationPortraitUpsideDown
46 | UIInterfaceOrientationLandscapeLeft
47 | UIInterfaceOrientationLandscapeRight
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Watermelon/Scene/GameScene+Touches.swift:
--------------------------------------------------------------------------------
1 | //
2 | // GameScene+Touches.swift
3 | // Watermelon
4 | //
5 | // Created by Steve Yu on 2021/1/29.
6 | //
7 |
8 | import SpriteKit
9 | import SwiftUI
10 |
11 | // MARK: - Touches
12 | extension GameScene {
13 | override func touchesBegan(_ touches: Set, with event: UIEvent?) {
14 |
15 | guard let touch = touches.first else { return }
16 | let location = touch.location(in: self)
17 |
18 | if gameover {
19 | if atPoint(location) == restart {
20 | groundCollision = false
21 | isShowingRedline = false
22 | gameover = false
23 | score = 0
24 | groundFruits = []
25 | removeAllChildren()
26 | print(111)
27 |
28 | print(gameover)
29 | initGame()
30 | }
31 | return
32 | }
33 | nowFruit.run(.sequence([
34 | .moveTo(x: location.x, duration: 0.1),
35 | .run {
36 | self.nowFruit.physicsBody = SKPhysicsBody(circleOfRadius: self.nowFruit.size.height / 2)
37 | let bitmask = self.fruitUtil.getFruitTextureByName(fruitName: self.nowFruit.name!).bitmask
38 | self.nowFruit.physicsBody?.categoryBitMask = bitmask
39 | self.nowFruit.physicsBody?.contactTestBitMask = bitmask
40 | },
41 | .wait(forDuration: 0.5),
42 | .run {
43 | self.groundFruits.append(self.nowFruit)
44 | self.nowFruit = self.fruitUtil.randomFruit()
45 | self.addChild(self.nowFruit)
46 | self.nowFruit.setScale(0)
47 | self.nowFruit.run(.scale(to: 0.5, duration: 0.1))
48 | }
49 | ]))
50 |
51 | }
52 |
53 | override func touchesMoved(_ touches: Set, with event: UIEvent?) {
54 |
55 | }
56 |
57 | override func touchesEnded(_ touches: Set, with event: UIEvent?) {
58 |
59 | }
60 | }
61 |
62 | struct GameSceneTouches_Previews: PreviewProvider {
63 | static var previews: some View {
64 | ContentView()
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/Watermelon/Utils/FruitUtil.swift:
--------------------------------------------------------------------------------
1 | //
2 | // FruitUtil.swift
3 | // Watermelon
4 | //
5 | // Created by Steve Yu on 2021/1/28.
6 | //
7 |
8 | import Foundation
9 | import SpriteKit
10 |
11 | class FruitUtil {
12 | private let randomList = [
13 | FruitTexture.grape,
14 | FruitTexture.cherry,
15 | FruitTexture.orange,
16 | FruitTexture.lemon,
17 | FruitTexture.kiwi
18 | ]
19 |
20 | private var randomCnt = 0
21 |
22 | private let mixList = [
23 | FruitTexture.grape,
24 | FruitTexture.cherry,
25 | FruitTexture.orange,
26 | FruitTexture.lemon,
27 | FruitTexture.kiwi,
28 | FruitTexture.tomato,
29 | FruitTexture.peach,
30 | FruitTexture.pineapple,
31 | FruitTexture.cocount,
32 | FruitTexture.halfwatermelon,
33 | FruitTexture.watermelon
34 | ]
35 |
36 | func getFruitScore(fruitName: String) -> Int {
37 | mixList.firstIndex{ $0.name == fruitName }! + 1
38 | }
39 |
40 | func mixFruit(fruitName: String) -> SKSpriteNode? {
41 | let index = mixList.firstIndex{ fruitName == $0.name }
42 | if index == nil || index! == mixList.count - 1 {
43 | print("fatal error: fruitName not found")
44 | return nil
45 | }
46 | let name = mixList[index! + 1].name
47 | let fruit = SKSpriteNode(imageNamed: name)
48 | fruit.name = name
49 | return fruit
50 | }
51 |
52 | func randomFruit() -> SKSpriteNode {
53 | randomCnt += 1
54 | var fruit: SKSpriteNode
55 | var name: String
56 | switch randomCnt {
57 | case 1...3:
58 | name = FruitTexture.grape.name
59 | case 4:
60 | name = FruitTexture.cherry.name
61 | case 5:
62 | name = FruitTexture.orange.name
63 | default:
64 | name = randomList.randomElement()!.name
65 | }
66 | fruit = SKSpriteNode(imageNamed: name)
67 | fruit.position = CGPoint(x: screen.width / 2, y: screen.height - 50)
68 | fruit.setScale(0.5)
69 | fruit.name = name
70 | return fruit
71 | }
72 |
73 | func getFruitTextureByName(fruitName: String) -> FruitTexture {
74 | FruitTexture.allCases.first{ $0.name == fruitName }!
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/Watermelon/Scene/GameScene.swift:
--------------------------------------------------------------------------------
1 | //
2 | // GameScene.swift
3 | // Watermelon
4 | //
5 | // Created by Steve Yu on 2021/1/28.
6 | //
7 |
8 | import SwiftUI
9 | import SpriteKit
10 |
11 | class GameScene: SKScene, SKPhysicsContactDelegate {
12 | var nowFruit: SKSpriteNode!
13 | var scoreNode: SKSpriteNode!
14 |
15 | var score: Int = 0 {
16 | didSet {
17 | updateScore()
18 | }
19 | }
20 |
21 | var groundFruits: [SKSpriteNode] = []
22 |
23 | var fruitUtil: FruitUtil!
24 |
25 | var ground: SKSpriteNode!
26 |
27 | let falldownAudio = AudioUtil(resourceName: "falldown")
28 | let winAudio = AudioUtil(resourceName: "win")
29 | let bombAudio = AudioUtil(resourceName: "bomb")
30 |
31 |
32 | var groundCollision = false
33 |
34 |
35 | var redline: SKSpriteNode!
36 | var isShowingRedline = false
37 |
38 | var gameover = false
39 | var gameoverNode: SKSpriteNode!
40 | var restart: SKSpriteNode!
41 |
42 | func initGame() {
43 | fruitUtil = FruitUtil()
44 |
45 | makeUI()
46 | makeNowFruit()
47 | makeScoreNode()
48 | makeRedline()
49 | }
50 |
51 | override func update(_ currentTime: TimeInterval) {
52 | if gameover { return }
53 |
54 | if isShowingRedline {
55 | for fruit in groundFruits {
56 | if fruit.position.y > screen.height - 80 {
57 | gameover = true
58 | loadingGameover()
59 | break
60 | }
61 | }
62 | }
63 |
64 | if isShowingRedline {
65 | if !checkWillShowingRedline() {
66 | showOutRedline()
67 | isShowingRedline = false
68 | }
69 | } else {
70 | if checkWillShowingRedline() {
71 | showInRedline()
72 | isShowingRedline = true
73 | }
74 | }
75 | }
76 |
77 | private func checkWillShowingRedline()->Bool {
78 | for fruit in groundFruits {
79 | if fruit.position.y > screen.height - 80 - 150 {
80 | return true
81 | }
82 | }
83 | return false
84 | }
85 | }
86 |
87 | struct GameScene_Previews: PreviewProvider {
88 | static var previews: some View {
89 | ContentView()
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/Watermelon/Bootstrap/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "notification-icon@2x.png",
5 | "idiom" : "iphone",
6 | "scale" : "2x",
7 | "size" : "20x20"
8 | },
9 | {
10 | "filename" : "notification-icon@3x.png",
11 | "idiom" : "iphone",
12 | "scale" : "3x",
13 | "size" : "20x20"
14 | },
15 | {
16 | "filename" : "icon-small.png",
17 | "idiom" : "iphone",
18 | "scale" : "1x",
19 | "size" : "29x29"
20 | },
21 | {
22 | "filename" : "icon-small@2x.png",
23 | "idiom" : "iphone",
24 | "scale" : "2x",
25 | "size" : "29x29"
26 | },
27 | {
28 | "filename" : "icon-small@3x.png",
29 | "idiom" : "iphone",
30 | "scale" : "3x",
31 | "size" : "29x29"
32 | },
33 | {
34 | "filename" : "icon-40@2x.png",
35 | "idiom" : "iphone",
36 | "scale" : "2x",
37 | "size" : "40x40"
38 | },
39 | {
40 | "filename" : "icon-40@3x.png",
41 | "idiom" : "iphone",
42 | "scale" : "3x",
43 | "size" : "40x40"
44 | },
45 | {
46 | "filename" : "icon.png",
47 | "idiom" : "iphone",
48 | "scale" : "1x",
49 | "size" : "57x57"
50 | },
51 | {
52 | "filename" : "icon@2x.png",
53 | "idiom" : "iphone",
54 | "scale" : "2x",
55 | "size" : "57x57"
56 | },
57 | {
58 | "filename" : "icon-60@2x.png",
59 | "idiom" : "iphone",
60 | "scale" : "2x",
61 | "size" : "60x60"
62 | },
63 | {
64 | "filename" : "icon-60@3x.png",
65 | "idiom" : "iphone",
66 | "scale" : "3x",
67 | "size" : "60x60"
68 | },
69 | {
70 | "filename" : "notification-icon~ipad.png",
71 | "idiom" : "ipad",
72 | "scale" : "1x",
73 | "size" : "20x20"
74 | },
75 | {
76 | "filename" : "notification-icon~ipad@2x.png",
77 | "idiom" : "ipad",
78 | "scale" : "2x",
79 | "size" : "20x20"
80 | },
81 | {
82 | "filename" : "icon-small.png",
83 | "idiom" : "ipad",
84 | "scale" : "1x",
85 | "size" : "29x29"
86 | },
87 | {
88 | "filename" : "icon-small@2x.png",
89 | "idiom" : "ipad",
90 | "scale" : "2x",
91 | "size" : "29x29"
92 | },
93 | {
94 | "filename" : "icon-40.png",
95 | "idiom" : "ipad",
96 | "scale" : "1x",
97 | "size" : "40x40"
98 | },
99 | {
100 | "filename" : "icon-40@2x.png",
101 | "idiom" : "ipad",
102 | "scale" : "2x",
103 | "size" : "40x40"
104 | },
105 | {
106 | "filename" : "icon-small-50.png",
107 | "idiom" : "ipad",
108 | "scale" : "1x",
109 | "size" : "50x50"
110 | },
111 | {
112 | "filename" : "icon-small-50@2x.png",
113 | "idiom" : "ipad",
114 | "scale" : "2x",
115 | "size" : "50x50"
116 | },
117 | {
118 | "filename" : "icon-72.png",
119 | "idiom" : "ipad",
120 | "scale" : "1x",
121 | "size" : "72x72"
122 | },
123 | {
124 | "filename" : "icon-72@2x.png",
125 | "idiom" : "ipad",
126 | "scale" : "2x",
127 | "size" : "72x72"
128 | },
129 | {
130 | "filename" : "icon-76.png",
131 | "idiom" : "ipad",
132 | "scale" : "1x",
133 | "size" : "76x76"
134 | },
135 | {
136 | "filename" : "icon-76@2x.png",
137 | "idiom" : "ipad",
138 | "scale" : "2x",
139 | "size" : "76x76"
140 | },
141 | {
142 | "filename" : "icon-83.5@2x.png",
143 | "idiom" : "ipad",
144 | "scale" : "2x",
145 | "size" : "83.5x83.5"
146 | },
147 | {
148 | "filename" : "ios-marketing.png",
149 | "idiom" : "ios-marketing",
150 | "scale" : "1x",
151 | "size" : "1024x1024"
152 | }
153 | ],
154 | "info" : {
155 | "author" : "xcode",
156 | "version" : 1
157 | }
158 | }
159 |
--------------------------------------------------------------------------------
/Watermelon/Scene/GameScene+LoadUI.swift:
--------------------------------------------------------------------------------
1 | //
2 | // GameScene+LoadUI.swift
3 | // Watermelon
4 | //
5 | // Created by Steve Yu on 2021/1/29.
6 | //
7 |
8 | import SpriteKit
9 | import SwiftUI
10 |
11 | // MARK: - Load UI
12 | extension GameScene {
13 | override func didMove(to view: SKView) {
14 | // view.showsFPS = true
15 | // view.showsNodeCount = true
16 |
17 | self.physicsWorld.contactDelegate = self
18 | self.physicsBody = SKPhysicsBody(edgeLoopFrom: frame)
19 |
20 | initGame()
21 | }
22 |
23 | func loadingGameover() {
24 | gameoverNode = SKSpriteNode()
25 | gameoverNode.position = CGPoint(x: screen.width / 2, y: screen.height / 2)
26 |
27 | let gray = SKSpriteNode(color: UIColor(#colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.4022575949)),
28 | size: CGSize(width: screen.width,
29 | height: screen.height))
30 | let gameover = SKSpriteNode(imageNamed: "gameover")
31 | restart = SKSpriteNode(imageNamed: "restart")
32 |
33 | gameover.position = CGPoint(x: 0, y: 20)
34 | restart.position = CGPoint(x: 0, y: -20)
35 |
36 | gameoverNode.addChild(gray)
37 | gameoverNode.addChild(gameover)
38 | gameoverNode.addChild(restart)
39 |
40 | gameover.setScale(0.3)
41 | restart.setScale(0.3)
42 | addChild(gameoverNode)
43 | }
44 |
45 | func makeNowFruit() {
46 | nowFruit = fruitUtil.randomFruit()
47 | addChild(nowFruit)
48 | }
49 |
50 | func makeScoreNode() {
51 | scoreNode = SKSpriteNode()
52 | scoreNode.position = CGPoint(x: 30, y: screen.height - 50)
53 | scoreNode.setScale(0.5)
54 | addChild(scoreNode)
55 |
56 | updateScore()
57 | }
58 |
59 | func updateScore() {
60 | scoreNode.removeAllChildren()
61 |
62 | var scoreCopy = score
63 | var arr: [Int] = []
64 |
65 | if scoreCopy == 0 {
66 | arr.append(0)
67 | } else {
68 | while scoreCopy != 0 {
69 | arr.append(scoreCopy % 10)
70 | scoreCopy /= 10
71 | }
72 | }
73 |
74 | var cnt = 0
75 | while arr.count != 0 {
76 | let last = arr.popLast()!
77 | let node = SKSpriteNode(imageNamed: "number/\(last)")
78 | node.position = CGPoint(x: cnt * 70, y: 0)
79 | cnt += 1
80 | scoreNode.addChild(node)
81 | }
82 | }
83 |
84 | func makeUI() {
85 | let background = SKSpriteNode(color: UIColor(#colorLiteral(red: 0.9843137255, green: 0.9098039216, blue: 0.6509803922, alpha: 1)), size: CGSize(width: screen.width, height: screen.height))
86 | background.anchorPoint = CGPoint.zero
87 | background.position = CGPoint.zero
88 |
89 | addChild(background)
90 |
91 | let solid = SKSpriteNode(color: UIColor(#colorLiteral(red: 0.4588235294, green: 0.3333333333, blue: 0.2352941176, alpha: 1)), size: CGSize(width: screen.width, height: screen.height / 5))
92 | solid.anchorPoint = CGPoint.zero
93 | solid.position = CGPoint.zero
94 |
95 | addChild(solid)
96 |
97 |
98 | ground = SKSpriteNode(color: UIColor(#colorLiteral(red: 0.6745098039, green: 0.537254902, blue: 0.3490196078, alpha: 1)), size: CGSize(width: screen.width, height: 10))
99 | ground.anchorPoint = CGPoint.zero
100 | ground.position = CGPoint(x: 0, y: screen.height / 5)
101 |
102 | ground.physicsBody = SKPhysicsBody(edgeFrom: CGPoint(x: 0, y: ground.size.height), to: CGPoint(x: ground.size.width, y: ground.size.height))
103 | ground.physicsBody?.categoryBitMask = 0xFFFFFFFF >> 1
104 | ground.physicsBody?.contactTestBitMask = 0xFFFFFFFF >> 1
105 |
106 | addChild(ground)
107 | }
108 | }
109 |
110 | struct GameSceneLoadUI_Previews: PreviewProvider {
111 | static var previews: some View {
112 | ContentView()
113 | }
114 | }
115 |
--------------------------------------------------------------------------------
/Watermelon/Scene/GameScene+Collisions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // GameScene+Collisions.swift
3 | // Watermelon
4 | //
5 | // Created by Steve Yu on 2021/1/29.
6 | //
7 |
8 | import SpriteKit
9 | import SwiftUI
10 |
11 | // MARK: - Collisions
12 | extension GameScene {
13 | func didBegin(_ contact: SKPhysicsContact) {
14 | if groundCollision { return }
15 |
16 | let collision = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask
17 |
18 | // ground collison
19 | for fruit in FruitTexture.allCases {
20 | let bit = fruit.bitmask | ground.physicsBody!.categoryBitMask
21 | if bit == collision {
22 | groundCollision = true
23 | falldownAudio.playAudio()
24 | Timer(timeInterval: 1, repeats: false) { _ in
25 | self.groundCollision = false
26 | }.fire()
27 | break
28 | }
29 | }
30 |
31 | // fruit collision
32 | for fruit in FruitTexture.allCases {
33 | let fruitBit = fruit.bitmask | fruit.bitmask
34 | if fruitBit == collision {
35 | // bomb sound
36 | bombAudio.playAudio()
37 |
38 | // collision appear
39 | let nodeA = contact.bodyA.node!
40 | let nodeB = contact.bodyB.node!
41 | // two watermelon collision
42 | if nodeA.name == FruitTexture.watermelon.name {
43 | return
44 | }
45 | // update score
46 | let score = fruitUtil.getFruitScore(fruitName: nodeA.name!)
47 | self.score += score
48 | // bonus
49 | if nodeA.name! == FruitTexture.halfwatermelon.name {
50 | self.score += 100
51 | showBonusAnimation()
52 | // bonus audio
53 | winAudio.playAudio()
54 | }
55 |
56 | // animation
57 | let newFruitPosition = CGPoint(
58 | x: (nodeA.position.x + nodeB.position.x) / 2,
59 | y: (nodeA.position.y + nodeB.position.y) / 2
60 | )
61 | run(.sequence([
62 | .run {
63 | nodeA.run(.fadeOut(withDuration: 0.1))
64 | nodeB.run(.fadeOut(withDuration: 0.1))
65 | },
66 | .run {
67 | nodeA.removeFromParent()
68 | nodeB.removeFromParent()
69 | },
70 | .run {
71 | self.generateNewFruitFromPosition(fruitName: nodeA.name!, position: newFruitPosition)
72 | }
73 | ]))
74 |
75 | }
76 | }
77 | }
78 |
79 | func showBonusAnimation() {
80 | let bonusNode = SKSpriteNode()
81 | bonusNode.position = CGPoint(x: screen.width / 2, y: screen.height / 2)
82 |
83 | let gray = SKSpriteNode(color: UIColor(#colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.4022575949)),
84 | size: CGSize(width: screen.width,
85 | height: screen.height))
86 |
87 | let layer = SKSpriteNode()
88 | let watermelon = SKSpriteNode(imageNamed: FruitTexture.watermelon.name)
89 | let yellowlight = SKSpriteNode(imageNamed: "yellowlight")
90 |
91 |
92 | watermelon.setScale(0.3)
93 |
94 | layer.addChild(yellowlight)
95 | layer.addChild(watermelon)
96 |
97 | bonusNode.addChild(gray)
98 | bonusNode.addChild(layer)
99 |
100 | addChild(bonusNode)
101 |
102 | yellowlight.run(.rotate(byAngle: 30, duration: 30))
103 |
104 | layer.setScale(0.1)
105 | layer.position = CGPoint(x: 0, y: 50)
106 | layer.run(.sequence([
107 | .scale(to: 1, duration: 0.5),
108 |
109 | .wait(forDuration: 1),
110 | .scale(to: 0, duration: 0.5)
111 | ]))
112 | layer.run(.sequence([
113 | .moveTo(y: 150, duration: 0.1),
114 | .moveTo(y: 0, duration: 0.4),
115 | .wait(forDuration: 1),
116 | .moveTo(y: 500, duration: 0.5),
117 | .run {
118 | bonusNode.run(.fadeOut(withDuration: 0.1))
119 | bonusNode.removeFromParent()
120 | }
121 | ]))
122 |
123 | }
124 |
125 | func generateNewFruitFromPosition(fruitName: String, position: CGPoint) {
126 | // add new Fruit
127 | guard let fruit = fruitUtil.mixFruit(fruitName: fruitName) else { return }
128 |
129 | fruit.position = position
130 | fruit.physicsBody = SKPhysicsBody(circleOfRadius: fruit.size.height/2)
131 | let bitmask = fruitUtil.getFruitTextureByName(fruitName: fruit.name!).bitmask
132 | fruit.physicsBody?.categoryBitMask = bitmask
133 | fruit.physicsBody?.contactTestBitMask = bitmask
134 |
135 | addChild(fruit)
136 | // animation
137 | fruit.setScale(0)
138 | fruit.run(.scale(to: 0.5, duration: 0.3))
139 |
140 | groundFruits.append(fruit)
141 | }
142 |
143 | func didEnd(_ contact: SKPhysicsContact) {
144 |
145 | }
146 | }
147 |
148 | struct GameSceneCollisions_Previews: PreviewProvider {
149 | static var previews: some View {
150 | ContentView()
151 | }
152 | }
153 |
--------------------------------------------------------------------------------
/Watermelon.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 50;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 9F3031D825C2AE0A009E083D /* WatermelonApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F3031D725C2AE0A009E083D /* WatermelonApp.swift */; };
11 | 9F3031DA25C2AE0A009E083D /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F3031D925C2AE0A009E083D /* ContentView.swift */; };
12 | 9F3031DC25C2AE0D009E083D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9F3031DB25C2AE0D009E083D /* Assets.xcassets */; };
13 | 9F3031DF25C2AE0D009E083D /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9F3031DE25C2AE0D009E083D /* Preview Assets.xcassets */; };
14 | 9F3031E825C2AEE9009E083D /* GameScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F3031E725C2AEE9009E083D /* GameScene.swift */; };
15 | 9F3031F125C2B0A4009E083D /* win.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 9F3031EE25C2B0A4009E083D /* win.mp3 */; };
16 | 9F3031F225C2B0A4009E083D /* falldown.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 9F3031EF25C2B0A4009E083D /* falldown.mp3 */; };
17 | 9F3031F325C2B0A4009E083D /* bomb.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 9F3031F025C2B0A4009E083D /* bomb.mp3 */; };
18 | 9F6B978F25C2BAF200465A17 /* FruitUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F6B978E25C2BAF200465A17 /* FruitUtil.swift */; };
19 | 9FD013D925C3FBEF002897F8 /* GameScene+LoadUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FD013D825C3FBEF002897F8 /* GameScene+LoadUI.swift */; };
20 | 9FD013DC25C3FC15002897F8 /* GameScene+Touches.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FD013DB25C3FC15002897F8 /* GameScene+Touches.swift */; };
21 | 9FD013E725C3FD64002897F8 /* FruitTexture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FD013E625C3FD64002897F8 /* FruitTexture.swift */; };
22 | 9FD013EC25C40043002897F8 /* GameScene+Collisions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FD013EB25C40043002897F8 /* GameScene+Collisions.swift */; };
23 | 9FDD9FAA25C425DB00876792 /* AudioUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FDD9FA925C425DB00876792 /* AudioUtil.swift */; };
24 | 9FDD9FCF25C42BC500876792 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FAD25C42BC500876792 /* icon.png */; };
25 | 9FDD9FD025C42BC500876792 /* yellowlight.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FAE25C42BC500876792 /* yellowlight.png */; };
26 | 9FDD9FD125C42BC500876792 /* peach.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FB025C42BC500876792 /* peach.png */; };
27 | 9FDD9FD225C42BC500876792 /* pineapple.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FB125C42BC500876792 /* pineapple.png */; };
28 | 9FDD9FD325C42BC500876792 /* tomato.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FB225C42BC500876792 /* tomato.png */; };
29 | 9FDD9FD425C42BC500876792 /* grape.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FB325C42BC500876792 /* grape.png */; };
30 | 9FDD9FD525C42BC500876792 /* watermelon.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FB425C42BC500876792 /* watermelon.png */; };
31 | 9FDD9FD625C42BC500876792 /* cherry.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FB525C42BC500876792 /* cherry.png */; };
32 | 9FDD9FD725C42BC500876792 /* orange.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FB625C42BC500876792 /* orange.png */; };
33 | 9FDD9FD825C42BC500876792 /* cocount.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FB725C42BC500876792 /* cocount.png */; };
34 | 9FDD9FD925C42BC500876792 /* lemon.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FB825C42BC500876792 /* lemon.png */; };
35 | 9FDD9FDA25C42BC500876792 /* kiwi.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FB925C42BC500876792 /* kiwi.png */; };
36 | 9FDD9FDB25C42BC500876792 /* halfwatermelon.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FBA25C42BC500876792 /* halfwatermelon.png */; };
37 | 9FDD9FDC25C42BC500876792 /* 8.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FBC25C42BC500876792 /* 8.png */; };
38 | 9FDD9FDD25C42BC500876792 /* 9.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FBD25C42BC500876792 /* 9.png */; };
39 | 9FDD9FDE25C42BC500876792 /* 4.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FBE25C42BC500876792 /* 4.png */; };
40 | 9FDD9FDF25C42BC500876792 /* 5.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FBF25C42BC500876792 /* 5.png */; };
41 | 9FDD9FE025C42BC500876792 /* 7.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FC025C42BC500876792 /* 7.png */; };
42 | 9FDD9FE125C42BC500876792 /* 6.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FC125C42BC500876792 /* 6.png */; };
43 | 9FDD9FE225C42BC500876792 /* 2.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FC225C42BC500876792 /* 2.png */; };
44 | 9FDD9FE325C42BC500876792 /* 3.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FC325C42BC500876792 /* 3.png */; };
45 | 9FDD9FE425C42BC500876792 /* 1.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FC425C42BC500876792 /* 1.png */; };
46 | 9FDD9FE525C42BC500876792 /* 0.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FC525C42BC500876792 /* 0.png */; };
47 | 9FDD9FE625C42BC500876792 /* yellow.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FC725C42BC500876792 /* yellow.png */; };
48 | 9FDD9FE725C42BC500876792 /* yellowpiece.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FC825C42BC500876792 /* yellowpiece.png */; };
49 | 9FDD9FE825C42BC500876792 /* orangepiece.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FC925C42BC500876792 /* orangepiece.png */; };
50 | 9FDD9FEA25C42BC500876792 /* greenpiece.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FCB25C42BC500876792 /* greenpiece.png */; };
51 | 9FDD9FEB25C42BC500876792 /* redpiece.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FCC25C42BC500876792 /* redpiece.png */; };
52 | 9FDD9FEC25C42BC500876792 /* purple.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FCD25C42BC500876792 /* purple.png */; };
53 | 9FDD9FED25C42BC500876792 /* purplepiece.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FCE25C42BC500876792 /* purplepiece.png */; };
54 | 9FDD9FF125C42C1D00876792 /* redline.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FF025C42C1D00876792 /* redline.png */; };
55 | 9FDD9FFC25C4331800876792 /* GameScene+RedLine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FDD9FFB25C4331800876792 /* GameScene+RedLine.swift */; };
56 | 9FDDA00025C4377100876792 /* restart.png in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FFE25C4377100876792 /* restart.png */; };
57 | 9FDDA00125C4377200876792 /* gameoverpng in Resources */ = {isa = PBXBuildFile; fileRef = 9FDD9FFF25C4377100876792 /* gameoverpng */; };
58 | /* End PBXBuildFile section */
59 |
60 | /* Begin PBXFileReference section */
61 | 9F3031D725C2AE0A009E083D /* WatermelonApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatermelonApp.swift; sourceTree = ""; };
62 | 9F3031D925C2AE0A009E083D /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; };
63 | 9F3031DB25C2AE0D009E083D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
64 | 9F3031DE25C2AE0D009E083D /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; };
65 | 9F3031E025C2AE0D009E083D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
66 | 9F3031E725C2AEE9009E083D /* GameScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameScene.swift; sourceTree = ""; };
67 | 9F3031EE25C2B0A4009E083D /* win.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = win.mp3; sourceTree = ""; };
68 | 9F3031EF25C2B0A4009E083D /* falldown.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = falldown.mp3; sourceTree = ""; };
69 | 9F3031F025C2B0A4009E083D /* bomb.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = bomb.mp3; sourceTree = ""; };
70 | 9F46A66425C4492A00D7EEE5 /* Watermelon.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Watermelon.app; sourceTree = BUILT_PRODUCTS_DIR; };
71 | 9F6B978E25C2BAF200465A17 /* FruitUtil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FruitUtil.swift; sourceTree = ""; };
72 | 9FD013D825C3FBEF002897F8 /* GameScene+LoadUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GameScene+LoadUI.swift"; sourceTree = ""; };
73 | 9FD013DB25C3FC15002897F8 /* GameScene+Touches.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GameScene+Touches.swift"; sourceTree = ""; };
74 | 9FD013E625C3FD64002897F8 /* FruitTexture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FruitTexture.swift; sourceTree = ""; };
75 | 9FD013EB25C40043002897F8 /* GameScene+Collisions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GameScene+Collisions.swift"; sourceTree = ""; };
76 | 9FDD9FA925C425DB00876792 /* AudioUtil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioUtil.swift; sourceTree = ""; };
77 | 9FDD9FAD25C42BC500876792 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = ""; };
78 | 9FDD9FAE25C42BC500876792 /* yellowlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = yellowlight.png; sourceTree = ""; };
79 | 9FDD9FB025C42BC500876792 /* peach.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = peach.png; sourceTree = ""; };
80 | 9FDD9FB125C42BC500876792 /* pineapple.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = pineapple.png; sourceTree = ""; };
81 | 9FDD9FB225C42BC500876792 /* tomato.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = tomato.png; sourceTree = ""; };
82 | 9FDD9FB325C42BC500876792 /* grape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = grape.png; sourceTree = ""; };
83 | 9FDD9FB425C42BC500876792 /* watermelon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = watermelon.png; sourceTree = ""; };
84 | 9FDD9FB525C42BC500876792 /* cherry.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cherry.png; sourceTree = ""; };
85 | 9FDD9FB625C42BC500876792 /* orange.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = orange.png; sourceTree = ""; };
86 | 9FDD9FB725C42BC500876792 /* cocount.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cocount.png; sourceTree = ""; };
87 | 9FDD9FB825C42BC500876792 /* lemon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lemon.png; sourceTree = ""; };
88 | 9FDD9FB925C42BC500876792 /* kiwi.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = kiwi.png; sourceTree = ""; };
89 | 9FDD9FBA25C42BC500876792 /* halfwatermelon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = halfwatermelon.png; sourceTree = ""; };
90 | 9FDD9FBC25C42BC500876792 /* 8.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 8.png; sourceTree = ""; };
91 | 9FDD9FBD25C42BC500876792 /* 9.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 9.png; sourceTree = ""; };
92 | 9FDD9FBE25C42BC500876792 /* 4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 4.png; sourceTree = ""; };
93 | 9FDD9FBF25C42BC500876792 /* 5.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 5.png; sourceTree = ""; };
94 | 9FDD9FC025C42BC500876792 /* 7.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 7.png; sourceTree = ""; };
95 | 9FDD9FC125C42BC500876792 /* 6.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 6.png; sourceTree = ""; };
96 | 9FDD9FC225C42BC500876792 /* 2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 2.png; sourceTree = ""; };
97 | 9FDD9FC325C42BC500876792 /* 3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 3.png; sourceTree = ""; };
98 | 9FDD9FC425C42BC500876792 /* 1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 1.png; sourceTree = ""; };
99 | 9FDD9FC525C42BC500876792 /* 0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 0.png; sourceTree = ""; };
100 | 9FDD9FC725C42BC500876792 /* yellow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = yellow.png; sourceTree = ""; };
101 | 9FDD9FC825C42BC500876792 /* yellowpiece.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = yellowpiece.png; sourceTree = ""; };
102 | 9FDD9FC925C42BC500876792 /* orangepiece.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = orangepiece.png; sourceTree = ""; };
103 | 9FDD9FCB25C42BC500876792 /* greenpiece.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = greenpiece.png; sourceTree = ""; };
104 | 9FDD9FCC25C42BC500876792 /* redpiece.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = redpiece.png; sourceTree = ""; };
105 | 9FDD9FCD25C42BC500876792 /* purple.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = purple.png; sourceTree = ""; };
106 | 9FDD9FCE25C42BC500876792 /* purplepiece.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = purplepiece.png; sourceTree = ""; };
107 | 9FDD9FF025C42C1D00876792 /* redline.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = redline.png; sourceTree = ""; };
108 | 9FDD9FFB25C4331800876792 /* GameScene+RedLine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GameScene+RedLine.swift"; sourceTree = ""; };
109 | 9FDD9FFE25C4377100876792 /* restart.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = restart.png; sourceTree = ""; };
110 | 9FDD9FFF25C4377100876792 /* gameoverpng */ = {isa = PBXFileReference; lastKnownFileType = file; path = gameoverpng; sourceTree = ""; };
111 | /* End PBXFileReference section */
112 |
113 | /* Begin PBXFrameworksBuildPhase section */
114 | 9F3031D125C2AE0A009E083D /* Frameworks */ = {
115 | isa = PBXFrameworksBuildPhase;
116 | buildActionMask = 2147483647;
117 | files = (
118 | );
119 | runOnlyForDeploymentPostprocessing = 0;
120 | };
121 | /* End PBXFrameworksBuildPhase section */
122 |
123 | /* Begin PBXGroup section */
124 | 9F3031CB25C2AE0A009E083D = {
125 | isa = PBXGroup;
126 | children = (
127 | 9FDD9FAC25C42BC500876792 /* Data Assets */,
128 | 9F3031D625C2AE0A009E083D /* Watermelon */,
129 | 9F46A66425C4492A00D7EEE5 /* Watermelon.app */,
130 | );
131 | sourceTree = "";
132 | };
133 | 9F3031D625C2AE0A009E083D /* Watermelon */ = {
134 | isa = PBXGroup;
135 | children = (
136 | 9FD013E525C3FD4D002897F8 /* Utils */,
137 | 9F3031E025C2AE0D009E083D /* Info.plist */,
138 | 9F3031ED25C2B0A4009E083D /* Sounds */,
139 | 9FD013E125C3FC4A002897F8 /* Bootstrap */,
140 | 9FD013DF25C3FC33002897F8 /* Scene */,
141 | 9F3031DD25C2AE0D009E083D /* Preview Content */,
142 | );
143 | path = Watermelon;
144 | sourceTree = "";
145 | };
146 | 9F3031DD25C2AE0D009E083D /* Preview Content */ = {
147 | isa = PBXGroup;
148 | children = (
149 | 9F3031DE25C2AE0D009E083D /* Preview Assets.xcassets */,
150 | );
151 | path = "Preview Content";
152 | sourceTree = "";
153 | };
154 | 9F3031ED25C2B0A4009E083D /* Sounds */ = {
155 | isa = PBXGroup;
156 | children = (
157 | 9F3031EE25C2B0A4009E083D /* win.mp3 */,
158 | 9F3031EF25C2B0A4009E083D /* falldown.mp3 */,
159 | 9F3031F025C2B0A4009E083D /* bomb.mp3 */,
160 | );
161 | path = Sounds;
162 | sourceTree = "";
163 | };
164 | 9FD013DF25C3FC33002897F8 /* Scene */ = {
165 | isa = PBXGroup;
166 | children = (
167 | 9F3031E725C2AEE9009E083D /* GameScene.swift */,
168 | 9FDD9FFB25C4331800876792 /* GameScene+RedLine.swift */,
169 | 9FD013DB25C3FC15002897F8 /* GameScene+Touches.swift */,
170 | 9FD013EB25C40043002897F8 /* GameScene+Collisions.swift */,
171 | 9FD013D825C3FBEF002897F8 /* GameScene+LoadUI.swift */,
172 | );
173 | path = Scene;
174 | sourceTree = "";
175 | };
176 | 9FD013E125C3FC4A002897F8 /* Bootstrap */ = {
177 | isa = PBXGroup;
178 | children = (
179 | 9F3031D725C2AE0A009E083D /* WatermelonApp.swift */,
180 | 9F3031D925C2AE0A009E083D /* ContentView.swift */,
181 | 9F3031DB25C2AE0D009E083D /* Assets.xcassets */,
182 | );
183 | path = Bootstrap;
184 | sourceTree = "";
185 | };
186 | 9FD013E525C3FD4D002897F8 /* Utils */ = {
187 | isa = PBXGroup;
188 | children = (
189 | 9F6B978E25C2BAF200465A17 /* FruitUtil.swift */,
190 | 9FD013E625C3FD64002897F8 /* FruitTexture.swift */,
191 | 9FDD9FA925C425DB00876792 /* AudioUtil.swift */,
192 | );
193 | path = Utils;
194 | sourceTree = "";
195 | };
196 | 9FDD9FAC25C42BC500876792 /* Data Assets */ = {
197 | isa = PBXGroup;
198 | children = (
199 | 9FDD9FFF25C4377100876792 /* gameoverpng */,
200 | 9FDD9FFE25C4377100876792 /* restart.png */,
201 | 9FDD9FAD25C42BC500876792 /* icon.png */,
202 | 9FDD9FF025C42C1D00876792 /* redline.png */,
203 | 9FDD9FAE25C42BC500876792 /* yellowlight.png */,
204 | 9FDD9FAF25C42BC500876792 /* Fruit */,
205 | 9FDD9FBB25C42BC500876792 /* number */,
206 | 9FDD9FC625C42BC500876792 /* Explode */,
207 | );
208 | path = "Data Assets";
209 | sourceTree = "";
210 | };
211 | 9FDD9FAF25C42BC500876792 /* Fruit */ = {
212 | isa = PBXGroup;
213 | children = (
214 | 9FDD9FB025C42BC500876792 /* peach.png */,
215 | 9FDD9FB125C42BC500876792 /* pineapple.png */,
216 | 9FDD9FB225C42BC500876792 /* tomato.png */,
217 | 9FDD9FB325C42BC500876792 /* grape.png */,
218 | 9FDD9FB425C42BC500876792 /* watermelon.png */,
219 | 9FDD9FB525C42BC500876792 /* cherry.png */,
220 | 9FDD9FB625C42BC500876792 /* orange.png */,
221 | 9FDD9FB725C42BC500876792 /* cocount.png */,
222 | 9FDD9FB825C42BC500876792 /* lemon.png */,
223 | 9FDD9FB925C42BC500876792 /* kiwi.png */,
224 | 9FDD9FBA25C42BC500876792 /* halfwatermelon.png */,
225 | );
226 | path = Fruit;
227 | sourceTree = "";
228 | };
229 | 9FDD9FBB25C42BC500876792 /* number */ = {
230 | isa = PBXGroup;
231 | children = (
232 | 9FDD9FBC25C42BC500876792 /* 8.png */,
233 | 9FDD9FBD25C42BC500876792 /* 9.png */,
234 | 9FDD9FBE25C42BC500876792 /* 4.png */,
235 | 9FDD9FBF25C42BC500876792 /* 5.png */,
236 | 9FDD9FC025C42BC500876792 /* 7.png */,
237 | 9FDD9FC125C42BC500876792 /* 6.png */,
238 | 9FDD9FC225C42BC500876792 /* 2.png */,
239 | 9FDD9FC325C42BC500876792 /* 3.png */,
240 | 9FDD9FC425C42BC500876792 /* 1.png */,
241 | 9FDD9FC525C42BC500876792 /* 0.png */,
242 | );
243 | path = number;
244 | sourceTree = "";
245 | };
246 | 9FDD9FC625C42BC500876792 /* Explode */ = {
247 | isa = PBXGroup;
248 | children = (
249 | 9FDD9FC725C42BC500876792 /* yellow.png */,
250 | 9FDD9FC825C42BC500876792 /* yellowpiece.png */,
251 | 9FDD9FC925C42BC500876792 /* orangepiece.png */,
252 | 9FDD9FCB25C42BC500876792 /* greenpiece.png */,
253 | 9FDD9FCC25C42BC500876792 /* redpiece.png */,
254 | 9FDD9FCD25C42BC500876792 /* purple.png */,
255 | 9FDD9FCE25C42BC500876792 /* purplepiece.png */,
256 | );
257 | path = Explode;
258 | sourceTree = "";
259 | };
260 | /* End PBXGroup section */
261 |
262 | /* Begin PBXNativeTarget section */
263 | 9F3031D325C2AE0A009E083D /* Watermelon */ = {
264 | isa = PBXNativeTarget;
265 | buildConfigurationList = 9F3031E325C2AE0D009E083D /* Build configuration list for PBXNativeTarget "Watermelon" */;
266 | buildPhases = (
267 | 9F3031D025C2AE0A009E083D /* Sources */,
268 | 9F3031D125C2AE0A009E083D /* Frameworks */,
269 | 9F3031D225C2AE0A009E083D /* Resources */,
270 | );
271 | buildRules = (
272 | );
273 | dependencies = (
274 | );
275 | name = Watermelon;
276 | productName = Watermelon;
277 | productReference = 9F46A66425C4492A00D7EEE5 /* Watermelon.app */;
278 | productType = "com.apple.product-type.application";
279 | };
280 | /* End PBXNativeTarget section */
281 |
282 | /* Begin PBXProject section */
283 | 9F3031CC25C2AE0A009E083D /* Project object */ = {
284 | isa = PBXProject;
285 | attributes = {
286 | LastSwiftUpdateCheck = 1240;
287 | LastUpgradeCheck = 1240;
288 | TargetAttributes = {
289 | 9F3031D325C2AE0A009E083D = {
290 | CreatedOnToolsVersion = 12.4;
291 | };
292 | };
293 | };
294 | buildConfigurationList = 9F3031CF25C2AE0A009E083D /* Build configuration list for PBXProject "Watermelon" */;
295 | compatibilityVersion = "Xcode 9.3";
296 | developmentRegion = en;
297 | hasScannedForEncodings = 0;
298 | knownRegions = (
299 | en,
300 | Base,
301 | );
302 | mainGroup = 9F3031CB25C2AE0A009E083D;
303 | productRefGroup = 9F3031CB25C2AE0A009E083D;
304 | projectDirPath = "";
305 | projectRoot = "";
306 | targets = (
307 | 9F3031D325C2AE0A009E083D /* Watermelon */,
308 | );
309 | };
310 | /* End PBXProject section */
311 |
312 | /* Begin PBXResourcesBuildPhase section */
313 | 9F3031D225C2AE0A009E083D /* Resources */ = {
314 | isa = PBXResourcesBuildPhase;
315 | buildActionMask = 2147483647;
316 | files = (
317 | 9F3031DF25C2AE0D009E083D /* Preview Assets.xcassets in Resources */,
318 | 9FDD9FF125C42C1D00876792 /* redline.png in Resources */,
319 | 9F3031F325C2B0A4009E083D /* bomb.mp3 in Resources */,
320 | 9FDD9FEC25C42BC500876792 /* purple.png in Resources */,
321 | 9FDD9FD225C42BC500876792 /* pineapple.png in Resources */,
322 | 9FDD9FCF25C42BC500876792 /* icon.png in Resources */,
323 | 9F3031DC25C2AE0D009E083D /* Assets.xcassets in Resources */,
324 | 9FDD9FD325C42BC500876792 /* tomato.png in Resources */,
325 | 9FDD9FE125C42BC500876792 /* 6.png in Resources */,
326 | 9F3031F125C2B0A4009E083D /* win.mp3 in Resources */,
327 | 9FDD9FDC25C42BC500876792 /* 8.png in Resources */,
328 | 9FDDA00125C4377200876792 /* gameoverpng in Resources */,
329 | 9FDD9FD925C42BC500876792 /* lemon.png in Resources */,
330 | 9FDD9FD525C42BC500876792 /* watermelon.png in Resources */,
331 | 9FDD9FD625C42BC500876792 /* cherry.png in Resources */,
332 | 9FDD9FEA25C42BC500876792 /* greenpiece.png in Resources */,
333 | 9FDD9FE725C42BC500876792 /* yellowpiece.png in Resources */,
334 | 9FDD9FE225C42BC500876792 /* 2.png in Resources */,
335 | 9FDD9FDF25C42BC500876792 /* 5.png in Resources */,
336 | 9FDD9FD825C42BC500876792 /* cocount.png in Resources */,
337 | 9FDD9FD425C42BC500876792 /* grape.png in Resources */,
338 | 9FDD9FE825C42BC500876792 /* orangepiece.png in Resources */,
339 | 9FDDA00025C4377100876792 /* restart.png in Resources */,
340 | 9FDD9FDD25C42BC500876792 /* 9.png in Resources */,
341 | 9FDD9FDB25C42BC500876792 /* halfwatermelon.png in Resources */,
342 | 9FDD9FE425C42BC500876792 /* 1.png in Resources */,
343 | 9FDD9FE625C42BC500876792 /* yellow.png in Resources */,
344 | 9FDD9FED25C42BC500876792 /* purplepiece.png in Resources */,
345 | 9FDD9FE025C42BC500876792 /* 7.png in Resources */,
346 | 9FDD9FDE25C42BC500876792 /* 4.png in Resources */,
347 | 9FDD9FDA25C42BC500876792 /* kiwi.png in Resources */,
348 | 9FDD9FEB25C42BC500876792 /* redpiece.png in Resources */,
349 | 9FDD9FE325C42BC500876792 /* 3.png in Resources */,
350 | 9FDD9FD125C42BC500876792 /* peach.png in Resources */,
351 | 9FDD9FE525C42BC500876792 /* 0.png in Resources */,
352 | 9FDD9FD025C42BC500876792 /* yellowlight.png in Resources */,
353 | 9F3031F225C2B0A4009E083D /* falldown.mp3 in Resources */,
354 | 9FDD9FD725C42BC500876792 /* orange.png in Resources */,
355 | );
356 | runOnlyForDeploymentPostprocessing = 0;
357 | };
358 | /* End PBXResourcesBuildPhase section */
359 |
360 | /* Begin PBXSourcesBuildPhase section */
361 | 9F3031D025C2AE0A009E083D /* Sources */ = {
362 | isa = PBXSourcesBuildPhase;
363 | buildActionMask = 2147483647;
364 | files = (
365 | 9FDD9FAA25C425DB00876792 /* AudioUtil.swift in Sources */,
366 | 9FD013DC25C3FC15002897F8 /* GameScene+Touches.swift in Sources */,
367 | 9F3031E825C2AEE9009E083D /* GameScene.swift in Sources */,
368 | 9F3031DA25C2AE0A009E083D /* ContentView.swift in Sources */,
369 | 9F3031D825C2AE0A009E083D /* WatermelonApp.swift in Sources */,
370 | 9FD013E725C3FD64002897F8 /* FruitTexture.swift in Sources */,
371 | 9F6B978F25C2BAF200465A17 /* FruitUtil.swift in Sources */,
372 | 9FD013D925C3FBEF002897F8 /* GameScene+LoadUI.swift in Sources */,
373 | 9FDD9FFC25C4331800876792 /* GameScene+RedLine.swift in Sources */,
374 | 9FD013EC25C40043002897F8 /* GameScene+Collisions.swift in Sources */,
375 | );
376 | runOnlyForDeploymentPostprocessing = 0;
377 | };
378 | /* End PBXSourcesBuildPhase section */
379 |
380 | /* Begin XCBuildConfiguration section */
381 | 9F3031E125C2AE0D009E083D /* Debug */ = {
382 | isa = XCBuildConfiguration;
383 | buildSettings = {
384 | ALWAYS_SEARCH_USER_PATHS = NO;
385 | CLANG_ANALYZER_NONNULL = YES;
386 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
387 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
388 | CLANG_CXX_LIBRARY = "libc++";
389 | CLANG_ENABLE_MODULES = YES;
390 | CLANG_ENABLE_OBJC_ARC = YES;
391 | CLANG_ENABLE_OBJC_WEAK = YES;
392 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
393 | CLANG_WARN_BOOL_CONVERSION = YES;
394 | CLANG_WARN_COMMA = YES;
395 | CLANG_WARN_CONSTANT_CONVERSION = YES;
396 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
397 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
398 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
399 | CLANG_WARN_EMPTY_BODY = YES;
400 | CLANG_WARN_ENUM_CONVERSION = YES;
401 | CLANG_WARN_INFINITE_RECURSION = YES;
402 | CLANG_WARN_INT_CONVERSION = YES;
403 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
404 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
405 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
406 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
407 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
408 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
409 | CLANG_WARN_STRICT_PROTOTYPES = YES;
410 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
411 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
412 | CLANG_WARN_UNREACHABLE_CODE = YES;
413 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
414 | COPY_PHASE_STRIP = NO;
415 | DEBUG_INFORMATION_FORMAT = dwarf;
416 | ENABLE_STRICT_OBJC_MSGSEND = YES;
417 | ENABLE_TESTABILITY = YES;
418 | GCC_C_LANGUAGE_STANDARD = gnu11;
419 | GCC_DYNAMIC_NO_PIC = NO;
420 | GCC_NO_COMMON_BLOCKS = YES;
421 | GCC_OPTIMIZATION_LEVEL = 0;
422 | GCC_PREPROCESSOR_DEFINITIONS = (
423 | "DEBUG=1",
424 | "$(inherited)",
425 | );
426 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
427 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
428 | GCC_WARN_UNDECLARED_SELECTOR = YES;
429 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
430 | GCC_WARN_UNUSED_FUNCTION = YES;
431 | GCC_WARN_UNUSED_VARIABLE = YES;
432 | IPHONEOS_DEPLOYMENT_TARGET = 14.4;
433 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
434 | MTL_FAST_MATH = YES;
435 | ONLY_ACTIVE_ARCH = YES;
436 | SDKROOT = iphoneos;
437 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
438 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
439 | };
440 | name = Debug;
441 | };
442 | 9F3031E225C2AE0D009E083D /* Release */ = {
443 | isa = XCBuildConfiguration;
444 | buildSettings = {
445 | ALWAYS_SEARCH_USER_PATHS = NO;
446 | CLANG_ANALYZER_NONNULL = YES;
447 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
448 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
449 | CLANG_CXX_LIBRARY = "libc++";
450 | CLANG_ENABLE_MODULES = YES;
451 | CLANG_ENABLE_OBJC_ARC = YES;
452 | CLANG_ENABLE_OBJC_WEAK = YES;
453 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
454 | CLANG_WARN_BOOL_CONVERSION = YES;
455 | CLANG_WARN_COMMA = YES;
456 | CLANG_WARN_CONSTANT_CONVERSION = YES;
457 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
458 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
459 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
460 | CLANG_WARN_EMPTY_BODY = YES;
461 | CLANG_WARN_ENUM_CONVERSION = YES;
462 | CLANG_WARN_INFINITE_RECURSION = YES;
463 | CLANG_WARN_INT_CONVERSION = YES;
464 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
465 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
466 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
467 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
468 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
469 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
470 | CLANG_WARN_STRICT_PROTOTYPES = YES;
471 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
472 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
473 | CLANG_WARN_UNREACHABLE_CODE = YES;
474 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
475 | COPY_PHASE_STRIP = NO;
476 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
477 | ENABLE_NS_ASSERTIONS = NO;
478 | ENABLE_STRICT_OBJC_MSGSEND = YES;
479 | GCC_C_LANGUAGE_STANDARD = gnu11;
480 | GCC_NO_COMMON_BLOCKS = YES;
481 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
482 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
483 | GCC_WARN_UNDECLARED_SELECTOR = YES;
484 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
485 | GCC_WARN_UNUSED_FUNCTION = YES;
486 | GCC_WARN_UNUSED_VARIABLE = YES;
487 | IPHONEOS_DEPLOYMENT_TARGET = 14.4;
488 | MTL_ENABLE_DEBUG_INFO = NO;
489 | MTL_FAST_MATH = YES;
490 | SDKROOT = iphoneos;
491 | SWIFT_COMPILATION_MODE = wholemodule;
492 | SWIFT_OPTIMIZATION_LEVEL = "-O";
493 | VALIDATE_PRODUCT = YES;
494 | };
495 | name = Release;
496 | };
497 | 9F3031E425C2AE0D009E083D /* Debug */ = {
498 | isa = XCBuildConfiguration;
499 | buildSettings = {
500 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
501 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
502 | CODE_SIGN_STYLE = Automatic;
503 | DEVELOPMENT_ASSET_PATHS = "\"Watermelon/Preview Content\"";
504 | DEVELOPMENT_TEAM = 49LSS4CMK7;
505 | ENABLE_PREVIEWS = YES;
506 | INFOPLIST_FILE = Watermelon/Info.plist;
507 | IPHONEOS_DEPLOYMENT_TARGET = 14.0;
508 | LD_RUNPATH_SEARCH_PATHS = (
509 | "$(inherited)",
510 | "@executable_path/Frameworks",
511 | );
512 | PRODUCT_BUNDLE_IDENTIFIER = com.steveyu;
513 | PRODUCT_NAME = "$(TARGET_NAME)";
514 | SWIFT_VERSION = 5.0;
515 | TARGETED_DEVICE_FAMILY = "1,2";
516 | };
517 | name = Debug;
518 | };
519 | 9F3031E525C2AE0D009E083D /* Release */ = {
520 | isa = XCBuildConfiguration;
521 | buildSettings = {
522 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
523 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
524 | CODE_SIGN_STYLE = Automatic;
525 | DEVELOPMENT_ASSET_PATHS = "\"Watermelon/Preview Content\"";
526 | DEVELOPMENT_TEAM = 49LSS4CMK7;
527 | ENABLE_PREVIEWS = YES;
528 | INFOPLIST_FILE = Watermelon/Info.plist;
529 | IPHONEOS_DEPLOYMENT_TARGET = 14.0;
530 | LD_RUNPATH_SEARCH_PATHS = (
531 | "$(inherited)",
532 | "@executable_path/Frameworks",
533 | );
534 | PRODUCT_BUNDLE_IDENTIFIER = com.steveyu;
535 | PRODUCT_NAME = "$(TARGET_NAME)";
536 | SWIFT_VERSION = 5.0;
537 | TARGETED_DEVICE_FAMILY = "1,2";
538 | };
539 | name = Release;
540 | };
541 | /* End XCBuildConfiguration section */
542 |
543 | /* Begin XCConfigurationList section */
544 | 9F3031CF25C2AE0A009E083D /* Build configuration list for PBXProject "Watermelon" */ = {
545 | isa = XCConfigurationList;
546 | buildConfigurations = (
547 | 9F3031E125C2AE0D009E083D /* Debug */,
548 | 9F3031E225C2AE0D009E083D /* Release */,
549 | );
550 | defaultConfigurationIsVisible = 0;
551 | defaultConfigurationName = Release;
552 | };
553 | 9F3031E325C2AE0D009E083D /* Build configuration list for PBXNativeTarget "Watermelon" */ = {
554 | isa = XCConfigurationList;
555 | buildConfigurations = (
556 | 9F3031E425C2AE0D009E083D /* Debug */,
557 | 9F3031E525C2AE0D009E083D /* Release */,
558 | );
559 | defaultConfigurationIsVisible = 0;
560 | defaultConfigurationName = Release;
561 | };
562 | /* End XCConfigurationList section */
563 | };
564 | rootObject = 9F3031CC25C2AE0A009E083D /* Project object */;
565 | }
566 |
--------------------------------------------------------------------------------