Skip to content

Commit f8c503f

Browse files
committed
added new song, improved level loading
1 parent 1dfbc8a commit f8c503f

File tree

5 files changed

+103
-25
lines changed

5 files changed

+103
-25
lines changed

WWDC 2018 Debug Xcode Project/WWDC SUBMISSION 2018.playground/Contents.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@ view.addTrackingArea(tracker)
1414

1515
PlaygroundPage.current.needsIndefiniteExecution = true
1616
view.presentScene(scene)
17-
17+
1818
PlaygroundPage.current.liveView = view

WWDC 2018 Debug Xcode Project/WWDC SUBMISSION 2018.playground/Sources/Declarations.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public func delay(_ delay:Double, closure:@escaping ()->()) {
88
}
99

1010
//array of all the song titles
11-
var songTitles = ["Mary Had a Little Lamb", "Song 2", "Song3"]
11+
var songTitles = ["Mary Had a Little Lamb", "Song 2", "Song3", "Song4"]
1212

1313
//bitmask declarations
1414
struct PhysicsCategory {

WWDC 2018 Debug Xcode Project/WWDC SUBMISSION 2018.playground/Sources/GameScene.swift

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@ public class GameScene: SKScene, SKPhysicsContactDelegate {
483483
//only generate the song if the game is not over
484484
if running {
485485
i = i + 1
486-
if i < (song.songArray.count ) {
486+
if i < song.songArray.count {
487487
if ((song.songArray[i]).0) == "N/A" {
488488
//delay the next iteration by delay amount
489489
delay(Double((song.songArray[i]).1)) {
@@ -496,16 +496,20 @@ public class GameScene: SKScene, SKPhysicsContactDelegate {
496496

497497
if(songTitles.indices.contains(currentLevel - 1)) {
498498
levelAnimation(level:"\(currentLevel)", song: songTitles[currentLevel - 1] )
499+
//clear songArray and repopulate with new song
499500
song.clear()
500-
song.setup(level: 2)
501+
song.setup(level: currentLevel)
502+
//reset index
501503
i = -1
504+
//wait for the levelAnimation complete before generating the new song
502505
delay(6) {
503506
self.generateSong()
504507
}
505508
} else {
506-
print("not here")
509+
//you won?
510+
print("level does not exist")
507511
}
508-
}else {
512+
} else {
509513
//spawn note
510514
prepareNoteForSpawn(note: ((song.songArray[i]).0), length: ((song.songArray[i]).1))
511515
//delay the next iteration by length of not playing

WWDC 2018 Debug Xcode Project/WWDC SUBMISSION 2018.playground/Sources/Song.swift

Lines changed: 93 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -81,16 +81,23 @@ public class Song {
8181
self.addNote(note: "D", length: quarter)
8282
self.addDelay(length: half)
8383
self.addNote(note: "C", length: half)
84+
self.addEndMarker()
85+
86+
case 2:
87+
//Old MacDonald Had a Farm
88+
self.addNote(note: "C2", length: quarter)
8489
self.addDelay(length: half)
85-
self.addNote(note: "E2", length: quarter)
86-
self.addDelay(length: half)
87-
self.addNote(note: "D2", length: quarter)
90+
self.addNote(note: "C2", length: quarter)
8891
self.addDelay(length: half)
8992
self.addNote(note: "C2", length: quarter)
9093
self.addDelay(length: half)
91-
self.addNote(note: "D2", length: quarter)
94+
self.addNote(note: "G", length: quarter)
9295
self.addDelay(length: half)
93-
self.addNote(note: "E2", length: quarter)
96+
self.addNote(note: "A", length: quarter)
97+
self.addDelay(length: half)
98+
self.addNote(note: "A", length: quarter)
99+
self.addDelay(length: half)
100+
self.addNote(note: "G", length: quarter)
94101
self.addDelay(length: half)
95102
self.addNote(note: "E2", length: quarter)
96103
self.addDelay(length: half)
@@ -100,43 +107,110 @@ public class Song {
100107
self.addDelay(length: half)
101108
self.addNote(note: "D2", length: quarter)
102109
self.addDelay(length: half)
103-
self.addNote(note: "D2", length: quarter)
110+
self.addNote(note: "C2", length: quarter)
104111
self.addDelay(length: half)
105-
self.addNote(note: "E2", length: quarter)
112+
113+
self.addNote(note: "G", length: quarter)
106114
self.addDelay(length: half)
107-
self.addNote(note: "E2", length: quarter)
115+
self.addNote(note: "C2", length: quarter)
116+
self.addDelay(length: half)
117+
self.addNote(note: "C2", length: quarter)
118+
self.addDelay(length: half)
119+
self.addNote(note: "C2", length: quarter)
120+
self.addDelay(length: half)
121+
self.addNote(note: "G", length: quarter)
122+
self.addDelay(length: half)
123+
self.addNote(note: "A", length: quarter)
124+
self.addDelay(length: half)
125+
self.addNote(note: "A", length: quarter)
126+
self.addDelay(length: half)
127+
self.addNote(note: "G", length: quarter)
108128
self.addDelay(length: half)
109129
self.addNote(note: "E2", length: quarter)
110130
self.addDelay(length: half)
111131
self.addNote(note: "E2", length: quarter)
112132
self.addDelay(length: half)
113133
self.addNote(note: "D2", length: quarter)
114134
self.addDelay(length: half)
135+
self.addNote(note: "D2", length: quarter)
136+
self.addDelay(length: half)
115137
self.addNote(note: "C2", length: quarter)
116138
self.addDelay(length: half)
117-
self.addNote(note: "D2", length: quarter)
139+
140+
self.addNote(note: "G", length: quarter)
118141
self.addDelay(length: half)
119-
self.addNote(note: "E2", length: quarter)
142+
self.addNote(note: "G", length: quarter)
120143
self.addDelay(length: half)
121-
self.addNote(note: "E2", length: quarter)
144+
self.addNote(note: "C2", length: quarter)
122145
self.addDelay(length: half)
123-
self.addNote(note: "E2", length: quarter)
146+
self.addNote(note: "C2", length: quarter)
124147
self.addDelay(length: half)
125-
self.addNote(note: "E2", length: quarter)
148+
self.addNote(note: "C2", length: quarter)
126149
self.addDelay(length: half)
127-
self.addNote(note: "D2", length: quarter)
150+
151+
self.addNote(note: "G", length: quarter)
128152
self.addDelay(length: half)
129-
self.addNote(note: "D2", length: quarter)
153+
self.addNote(note: "G", length: quarter)
154+
self.addDelay(length: half)
155+
self.addNote(note: "C2", length: quarter)
156+
self.addDelay(length: half)
157+
self.addNote(note: "C2", length: quarter)
158+
self.addDelay(length: half)
159+
self.addNote(note: "C2", length: quarter)
160+
self.addDelay(length: half)
161+
162+
self.addNote(note: "C2", length: quarter)
163+
self.addDelay(length: quarter)
164+
self.addNote(note: "C2", length: quarter)
165+
self.addDelay(length: quarter)
166+
self.addNote(note: "C2", length: quarter)
167+
self.addDelay(length: half)
168+
self.addNote(note: "C2", length: quarter)
169+
self.addDelay(length: quarter)
170+
self.addNote(note: "C2", length: quarter)
171+
self.addDelay(length: quarter)
172+
self.addNote(note: "C2", length: quarter)
173+
self.addDelay(length: half)
174+
self.addNote(note: "C2", length: quarter)
175+
self.addDelay(length: quarter)
176+
self.addNote(note: "C2", length: quarter)
177+
self.addDelay(length: quarter)
178+
self.addNote(note: "C2", length: quarter)
179+
self.addDelay(length: quarter)
180+
self.addNote(note: "C2", length: quarter)
181+
self.addDelay(length: quarter)
182+
self.addNote(note: "C2", length: quarter)
183+
self.addDelay(length: half)
184+
self.addNote(note: "C2", length: quarter)
185+
self.addDelay(length: half)
186+
187+
self.addNote(note: "C2", length: quarter)
188+
self.addDelay(length: half)
189+
self.addNote(note: "C2", length: quarter)
190+
self.addDelay(length: half)
191+
self.addNote(note: "C2", length: quarter)
192+
self.addDelay(length: half)
193+
self.addNote(note: "G", length: quarter)
194+
self.addDelay(length: half)
195+
self.addNote(note: "A", length: quarter)
196+
self.addDelay(length: half)
197+
self.addNote(note: "A", length: quarter)
198+
self.addDelay(length: half)
199+
self.addNote(note: "G", length: quarter)
200+
self.addDelay(length: half)
201+
self.addNote(note: "E2", length: quarter)
130202
self.addDelay(length: half)
131203
self.addNote(note: "E2", length: quarter)
132204
self.addDelay(length: half)
133205
self.addNote(note: "D2", length: quarter)
134206
self.addDelay(length: half)
135-
self.addNote(note: "C2", length: half)
207+
self.addNote(note: "D2", length: quarter)
208+
self.addDelay(length: half)
209+
self.addNote(note: "C2", length: quarter)
136210
self.addDelay(length: half)
137211
self.addEndMarker()
138212

139-
case 2:
213+
case 3:
140214

141215
self.addNote(note: "E", length: quarter)
142216
self.addDelay(length: half)
@@ -149,8 +223,8 @@ public class Song {
149223
self.addNote(note: "E", length: quarter)
150224
self.addDelay(length: half)
151225
self.addEndMarker()
152-
153-
case 3:
226+
227+
case 4:
154228

155229
self.addNote(note: "E", length: quarter)
156230
self.addDelay(length: half)

0 commit comments

Comments
 (0)