[PATCH] adding kuku.py, i think.
Christopher Schmidt (none)
crschmidt at bia.
Sun Aug 19 12:18:19 EDT 2007
---
kuku.py | 160 ++++++++++++++++++++++++++++++++++-----------------------------
1 files changed, 86 insertions(+), 74 deletions(-)
diff --git a/kuku.py b/kuku.py
index 36996a3..65216aa 100644
--- a/kuku.py
+++ b/kuku.py
@@ -624,32 +624,36 @@ def main():
y_direction = 0
time = 0
+ changed = {'lives': True, 'grid': True, 'time': True, 'actor': True, 'score': True}
try:
while True:
- delta = clock.tick(25)
+ delta = clock.tick(50)
time += delta
if time > 1000:
time = 0
Img.correct,screen,font
time_clock.add(-1)
- if time_clock.number == 0:
+ if time_clock.get_ticks() == 0:
num_players.kill()
qa,num_players,score,time_clock = reset_board(screen,gridsize,
font,
num_players=num_players,
score=score)
- state.update(lives=num_players.number,
- score=score.number,
- time =time_clock.number)
+ state.update(lives=num_players.get_lives(),
+ score=score.get_score(),
+ time =time_clock.get_ticks())
high_score.set(state.high_score)
+ changed['score'] = True
+ changed['lives'] = True
+ changed['time'] = True
+ changed['grid'] = True
+ changed['actor'] = True
for evt in pygame.event.get():
-
- # print 'MAINLOOP TYPE:',evt.key
-
if evt.type == pygame.QUIT:
raise StopGame
elif evt.type == pygame.KEYDOWN:
+ changed['actor'] = True
if evt.key == pygame.K_ESCAPE:
raise StopGame
# elif evt.key == pygame.K_SPACE:
@@ -666,6 +670,7 @@ def main():
animate_dirtyrects.append(player.draw(screen))
pygame.display.update(animate_dirtyrects)
pygame.time.wait(200)
+ changed['score'] = True
#try an answer
if (grid.get_tile(x,y).get_answer() == qa.get_correct_answer()):
@@ -686,12 +691,11 @@ def main():
num_players=num_players,
score=score,
time_clock=time_clock)
- state.update(lives=num_players.number,
- score=score.number,
- time =time_clock.number)
+ changed['grid'] = True
+ state.update(lives=num_players.get_lives(),
+ score=score.get_score(),
+ time =time_clock.get_ticks())
high_score.set(state.high_score)
-
-
else:
peck_bad.play()
num_players.kill()
@@ -699,11 +703,10 @@ def main():
time = 0
#probably right here
- state.update(lives=num_players.number,
- time =time_clock.number)
+ state.update(lives=num_players.get_lives(),
+ time =time_clock.get_ticks())
high_score.set(state.high_score)
-
-
+ changed['lives'] = True
if actor_facing == 1:
player.set_image(Img.stunned_right)
@@ -725,75 +728,84 @@ def main():
elif evt.key == pygame.K_UP or evt.key == pygame.K_KP9:
bock.play()
y_direction = -1
-
- if num_players.number <= 0:
- #reset the question
- # qa,num_players = reset_board(screen,gridsize,font)
- pygame.mixer.music.fadeout(2000)
- kuku_lose.play()
- qa,num_players,score,time_clock = game_over(screen,gridsize,font)
- state.update(lives=num_players.number,
- score=score.number,
- time =time_clock.number)
- high_score.set(state.high_score)
+ if changed['lives']:
+ if num_players.get_lives() <= 0:
+ #reset the question
+ # qa,num_players = reset_board(screen,gridsize,font)
+ pygame.mixer.music.fadeout(2000)
+ kuku_lose.play()
+ qa,num_players,score,time_clock = game_over(screen,gridsize,font)
+ state.update(lives=num_players.get_lives(),
+ score=score.get_score(),
+ time =time_clock.get_ticks())
+ high_score.set(state.high_score)
+
+ if changed['score']:
+ if state.won:
+ pygame.mixer.music.fadeout(2000)
+ kuku_win.play()
+ pygame.mixer.music
+ qa,num_players,score,time_clock = game_win(screen,gridsize,font,state)
+ state.update(lives=num_players.get_lives(),
+ score=score.get_score(),
+ time =time_clock.get_ticks())
+ state.won = 0
+ high_score.set(state.high_score)
+
+ if changed['actor'] or changed['grid']:
+ # determine which direction the actor is facing
+ if x_direction in [-1,1]:
+ actor_facing = x_direction
+
+ for actor in [player]:
+ grid_pos = actor.grid_position
+ dirtyrects.extend(grid.get_tile(grid_pos[0],grid_pos[1]).draw(screen))
+ dirtyrects.append(actor.erase(screen,
+ grid.get_tile(grid_pos[0],grid_pos[1]).get_background()))
+
+ actor.update()
+ # old_position = player.grid_position
+ player.move(x_direction,y_direction)
+ x_direction = 0
+ y_direction = 0
-
- if state.won:
- pygame.mixer.music.fadeout(2000)
- kuku_win.play()
- pygame.mixer.music
- qa,num_players,score,time_clock = game_win(screen,gridsize,font,state)
- state.update(lives=num_players.number,
- score=score.number,
- time =time_clock.number)
- state.won = 0
- high_score.set(state.high_score)
+ #questions and answers
+ dirtyrects.extend(qa.display_question(screen,font))
+ qa.set_answers(screen,grid,font)
+ for actor in [player]:
+ dirtyrects.append(actor.draw(screen))
- # determine which direction the actor is facing
- if x_direction in [-1,1]:
- actor_facing = x_direction
-
- for actor in [player]:
- grid_pos = actor.grid_position
- # pygame.display.update(actor.erase(screen,
- # grid.get_tile(grid_pos[0],grid_pos[1]).get_background()))
- # pygame.display.update(grid.get_tile(grid_pos[0],grid_pos[1]).draw(screen))
- dirtyrects.extend(grid.get_tile(grid_pos[0],grid_pos[1]).draw(screen))
- dirtyrects.append(actor.erase(screen,
- grid.get_tile(grid_pos[0],grid_pos[1]).get_background()))
+ if changed['score']:
+ #score
+ dirtyrects.extend(score.draw(screen))
- actor.update()
-
- # old_position = player.grid_position
- player.move(x_direction,y_direction)
- x_direction = 0
- y_direction = 0
-
- #questions and answers
- dirtyrects.extend(qa.display_question(screen,font))
- qa.set_answers(screen,grid,font)
- dirtyrects.extend(grid.draw(screen))
-
- for actor in [player]:
- dirtyrects.append(actor.draw(screen))
+ #high_score
+ dirtyrects.extend(high_score.draw(screen))
#lives
- dirtyrects.extend(num_players.draw())
-
- #score
- dirtyrects.extend(score.draw())
-
- #high_score
- dirtyrects.extend(high_score.draw())
+ dirtyrects.extend(num_players.draw_lives(screen))
#time_clock
- dirtyrects.extend(time_clock.draw())
+ dirtyrects.extend(time_clock.draw(screen))
+
+ if changed['grid']:
+ dirtyrects.extend(grid.draw(screen))
#do the update
pygame.display.update(dirtyrects)
dirtyrects = []
+
+ if changed['actor']:
+ for actor in [player]:
+ grid_pos = actor.grid_position
+ dirtyrects.extend(grid.get_tile(grid_pos[0],grid_pos[1]).draw(screen))
+ dirtyrects.append(actor.draw(screen))
+ pygame.display.update(dirtyrects)
+ dirtyrects = []
+
+ changed = {'lives': False, 'grid': False, 'time': False, 'actor': False, 'score': False}
except StopGame:
state.score = 0
@@ -803,4 +815,4 @@ def main():
if __name__ == '__main__':
- main()
\ No newline at end of file
+ main()
--
1.4.4.4
--SLDf9lqlvOQaIe6s--
More information about the Games
mailing list