Skip to content

Commit

Permalink
use scenes for ready and game over
Browse files Browse the repository at this point in the history
  • Loading branch information
reidrac committed May 21, 2015
1 parent 894f8a5 commit 72d7d95
Showing 1 changed file with 47 additions and 40 deletions.
87 changes: 47 additions & 40 deletions example.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,45 @@ def update(self, dt):
# press "s" to play
game.stop_playback(self.intro_channel)
self.intro_channel = None
scenes.append(PlayScene())
scenes.append(ReadyScene())
return

class ReadyScene(object):

def __init__(self):
self.delay = 16

def draw(self, renderer):
renderer.draw(background)
renderer.draw_text(font, 120, 100, "READY?", align="center")

def update(self, dt):
if self.delay > 0:
self.delay -= dt * 10
if self.delay <= 0:
scenes.pop()
scenes.append(PlayScene())

class GameOverScene(object):

def __init__(self):
self.delay = 80

# play it once
game.play(gameover)

def draw(self, renderer):
renderer.draw(background)
renderer.draw_text(font, 120, 100, "GAME OVER", align="center")

def update(self, dt):
if self.delay > 0:
self.delay -= dt * 10
if self.delay <= 0:

# back to menu
scenes.pop()

class PlayScene(object):

BW = 7
Expand All @@ -127,20 +163,17 @@ class PlayScene(object):
TILES = 8

def __init__(self):
self.stage = 1
self.score = 0

# subtextures for the board tiles
self.tiles = [tiles.get_texture(*tuple([i * 24, 0, 24, 24])) for i in range(self.MAX_TILES)]

# stage 1
self.stage = 0
self.music_channel = game.play(dance, loops=-1)
self.next_stage()

def next_stage(self):
self.stage += 1
self.ready_delay = 16
self.time = 99
self.music_channel = None
self.time = 12
self.hurry_up = None
self.time_tint = None
self.game_over = None
Expand All @@ -164,16 +197,6 @@ def draw(self, renderer):
else:
renderer.draw_text(font, 120, 9, "TIME: %02i" % int(self.time), align="center", tint=self.time_tint)

# show READY? before starting
if self.ready_delay > 0:
renderer.draw_text(font, 120, 100, "READY?", align="center")
return

# game over
if self.game_over:
renderer.draw_text(font, 120, 100, "GAME OVER", align="center")
return

# draw the board
for y in range(self.BH):
for x in range(self.BW):
Expand All @@ -184,26 +207,6 @@ def draw(self, renderer):

def update(self, dt):

# GAME OVER
if self.game_over:
self.game_over -= dt * 10

if self.game_over <= 0:
global hiscore
if self.score > hiscore:
hiscore = self.score

# back to menu
scenes.pop()
return

# READY? delay
if self.ready_delay > 0:
self.ready_delay -= dt * 10
if self.ready_delay <= 0 and self.music_channel is None:
self.music_channel = game.play(dance, loops=-1)
return

# HURRY UP! delay
if self.hurry_up:
self.hurry_up -= dt * 10
Expand Down Expand Up @@ -234,14 +237,18 @@ def update(self, dt):

# set GAME OVER
if int(self.time) == 0:
self.game_over = 80

# stop music
if self.music_channel is not None:
game.stop_playback(self.music_channel)

# play it once
game.play(gameover)
global hiscore
if self.score > hiscore:
hiscore = self.score

scenes.pop()
scenes.append(GameOverScene())
return

# controls
if game.keys[game.KEY_ESCAPE]:
Expand Down

0 comments on commit 72d7d95

Please sign in to comment.