comparison gamelib/engine.py @ 202:3074784c93f4

Animation support
author Neil Muller <drnlmuller@gmail.com>
date Fri, 04 Sep 2009 20:23:30 +0000
parents 2b9176c35397
children 653da96db572
comparison
equal deleted inserted replaced
201:fe1e9c18d4d7 202:3074784c93f4
108 self.game.gameboard.tv.sun(True) 108 self.game.gameboard.tv.sun(True)
109 109
110 sound.play_sound("daybreak.ogg") 110 sound.play_sound("daybreak.ogg")
111 # disable timer 111 # disable timer
112 pygame.time.set_timer(MOVE_FOX_ID, 0) 112 pygame.time.set_timer(MOVE_FOX_ID, 0)
113 pygame.time.set_timer(ANIM_ID, 50)
113 self.game.gameboard.advance_day() 114 self.game.gameboard.advance_day()
114 self.game.gameboard.clear_foxes() 115 self.game.gameboard.clear_foxes()
115 sound.background_music("daytime.ogg") 116 sound.background_music("daytime.ogg")
116 self.game.gameboard.hatch_eggs() 117 self.game.gameboard.hatch_eggs()
117 118
119 if events_equal(e, START_NIGHT): 120 if events_equal(e, START_NIGHT):
120 return NightState(self.game) 121 return NightState(self.game)
121 elif e.type is KEYDOWN and e.key == K_ESCAPE: 122 elif e.type is KEYDOWN and e.key == K_ESCAPE:
122 self.game.gameboard.reset_cursor() 123 self.game.gameboard.reset_cursor()
123 return GameOver(self.game) 124 return GameOver(self.game)
125 elif e.type is ANIM_ID:
126 self.game.gameboard.run_animations()
124 elif e.type is KEYDOWN and e.key == K_n: 127 elif e.type is KEYDOWN and e.key == K_n:
125 return pygame.event.post(START_NIGHT) 128 return pygame.event.post(START_NIGHT)
126 elif events_equal(e, GO_MAIN_MENU): 129 elif events_equal(e, GO_MAIN_MENU):
127 return MainMenuState(self.game) 130 return MainMenuState(self.game)
128 elif e.type is not QUIT: 131 elif e.type is not QUIT:
149 152
150 sound.play_sound("nightfall.ogg") 153 sound.play_sound("nightfall.ogg")
151 # Add a timer to the event queue 154 # Add a timer to the event queue
152 self.cycle_count = 0 155 self.cycle_count = 0
153 pygame.time.set_timer(MOVE_FOX_ID, 200) 156 pygame.time.set_timer(MOVE_FOX_ID, 200)
157 pygame.time.set_timer(ANIM_ID, 50)
154 self.game.gameboard.spawn_foxes() 158 self.game.gameboard.spawn_foxes()
155 sound.background_music("nighttime.ogg") 159 sound.background_music("nighttime.ogg")
156 160
157 self.game.gameboard.lay_eggs() 161 self.game.gameboard.lay_eggs()
158 162
164 elif e.type is KEYDOWN and e.key == K_d: 168 elif e.type is KEYDOWN and e.key == K_d:
165 return pygame.event.post(START_DAY) 169 return pygame.event.post(START_DAY)
166 elif e.type is KEYDOWN and e.key == K_ESCAPE: 170 elif e.type is KEYDOWN and e.key == K_ESCAPE:
167 self.game.gameboard.reset_cursor() 171 self.game.gameboard.reset_cursor()
168 return GameOver(self.game) 172 return GameOver(self.game)
173 elif e.type is ANIM_ID:
174 self.game.gameboard.run_animations()
169 elif e.type is MOVE_FOX_ID: 175 elif e.type is MOVE_FOX_ID:
170 self.cycle_count += 1 176 self.cycle_count += 1
171 if self.cycle_count > constants.NIGHT_LENGTH: 177 if self.cycle_count > constants.NIGHT_LENGTH:
172 return pygame.event.post(START_DAY) 178 return pygame.event.post(START_DAY)
173 if self.game.gameboard.move_foxes(): 179 if self.game.gameboard.move_foxes():
192 def init(self): 198 def init(self):
193 """Setup everything""" 199 """Setup everything"""
194 sound.stop_background_music() 200 sound.stop_background_music()
195 self.game.create_game_over() 201 self.game.create_game_over()
196 pygame.time.set_timer(MOVE_FOX_ID, 0) 202 pygame.time.set_timer(MOVE_FOX_ID, 0)
203 pygame.time.set_timer(ANIM_ID, 0)
197 204
198 def event(self, e): 205 def event(self, e):
199 if e.type is KEYDOWN: 206 if e.type is KEYDOWN:
200 if e.key == K_ESCAPE: 207 if e.key == K_ESCAPE:
201 return MainMenuState(self.game) 208 return MainMenuState(self.game)
222 START_DAY = pygame.event.Event(USEREVENT, name="START_DAY") 229 START_DAY = pygame.event.Event(USEREVENT, name="START_DAY")
223 START_NIGHT = pygame.event.Event(USEREVENT, name="START_NIGHT") 230 START_NIGHT = pygame.event.Event(USEREVENT, name="START_NIGHT")
224 GO_MAIN_MENU = pygame.event.Event(USEREVENT, name="GO_MAIN_MENU") 231 GO_MAIN_MENU = pygame.event.Event(USEREVENT, name="GO_MAIN_MENU")
225 GO_HELP_SCREEN = pygame.event.Event(USEREVENT, name="GO_HELP_SCREEN") 232 GO_HELP_SCREEN = pygame.event.Event(USEREVENT, name="GO_HELP_SCREEN")
226 MOVE_FOX_ID = USEREVENT + 1 233 MOVE_FOX_ID = USEREVENT + 1
234 ANIM_ID = USEREVENT + 6
227 MOVE_FOXES = pygame.event.Event(MOVE_FOX_ID, name="MOVE_FOXES") 235 MOVE_FOXES = pygame.event.Event(MOVE_FOX_ID, name="MOVE_FOXES")
228 QUIT = pygame.event.Event(QUIT) 236 QUIT = pygame.event.Event(QUIT)