Mercurial > rinkhals
comparison gamelib/engine.py @ 435:66bc99477155
Remove references to ANIM timer, so no longer relevant
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Sat, 21 Nov 2009 17:41:21 +0000 |
parents | f2a55e5e24db |
children | 2b4cd86dfcaf |
comparison
equal
deleted
inserted
replaced
434:f2a55e5e24db | 435:66bc99477155 |
---|---|
163 self.game.gameboard.start_day() | 163 self.game.gameboard.start_day() |
164 | 164 |
165 sound.play_sound("daybreak.ogg") | 165 sound.play_sound("daybreak.ogg") |
166 # disable timer | 166 # disable timer |
167 pygame.time.set_timer(MOVE_FOX_ID, 0) | 167 pygame.time.set_timer(MOVE_FOX_ID, 0) |
168 pygame.time.set_timer(ANIM_ID, SLOW_ANIM_SPEED) | |
169 sound.background_music("daytime.ogg") | 168 sound.background_music("daytime.ogg") |
170 self.dialog = None | 169 self.dialog = None |
171 | 170 |
172 def event(self, e): | 171 def event(self, e): |
173 if self.dialog and self.dialog.running: | 172 if self.dialog and self.dialog.running: |
214 | 213 |
215 self.game.gameboard.chickens_scatter() | 214 self.game.gameboard.chickens_scatter() |
216 self.game.gameboard.chickens_chop_wood() | 215 self.game.gameboard.chickens_chop_wood() |
217 # Add a timer to the event queue | 216 # Add a timer to the event queue |
218 self.cycle_count = 0 | 217 self.cycle_count = 0 |
219 self.cycle_time = SLOW_ANIM_SPEED | 218 self.cycle_time = SLOW__SPEED |
220 pygame.time.set_timer(MOVE_FOX_ID, 4*self.cycle_time) | 219 pygame.time.set_timer(MOVE_FOX_ID, self.cycle_time) |
221 pygame.time.set_timer(ANIM_ID, self.cycle_time) | |
222 sound.background_music("nighttime.ogg") | 220 sound.background_music("nighttime.ogg") |
223 | 221 |
224 self.dialog = None | 222 self.dialog = None |
225 | 223 |
226 def event(self, e): | 224 def event(self, e): |
238 if self.game.level.is_game_over(self.game.gameboard): | 236 if self.game.level.is_game_over(self.game.gameboard): |
239 return GameOver(self.game) | 237 return GameOver(self.game) |
240 return DayState(self.game) | 238 return DayState(self.game) |
241 elif (e.type is KEYDOWN and e.key == K_d) or \ | 239 elif (e.type is KEYDOWN and e.key == K_d) or \ |
242 events_equal(e, FAST_FORWARD): | 240 events_equal(e, FAST_FORWARD): |
243 if self.cycle_time > FAST_ANIM_SPEED: | 241 if self.cycle_time > FAST__SPEED: |
244 self.cycle_time = FAST_ANIM_SPEED | 242 self.cycle_time = FAST__SPEED |
245 else: | 243 else: |
246 self.cycle_time = SLOW_ANIM_SPEED | 244 self.cycle_time = SLOW__SPEED |
247 pygame.time.set_timer(ANIM_ID, self.cycle_time) | 245 pygame.time.set_timer(MOVE_FOX_ID, self.cycle_time) |
248 pygame.time.set_timer(MOVE_FOX_ID, 4*self.cycle_time) | |
249 elif e.type is KEYDOWN and e.key == K_ESCAPE: | 246 elif e.type is KEYDOWN and e.key == K_ESCAPE: |
250 self.dialog = check_exit() | 247 self.dialog = check_exit() |
251 elif e.type is MOVE_FOX_ID: | 248 elif e.type is MOVE_FOX_ID: |
252 # ensure no timers trigger while we're running | 249 # ensure no timers trigger while we're running |
253 pygame.time.set_timer(ANIM_ID, 0) | |
254 pygame.time.set_timer(MOVE_FOX_ID, 0) | 250 pygame.time.set_timer(MOVE_FOX_ID, 0) |
255 # Clear any queued timer events, so we don't full the queue | 251 # Clear any queued timer events, so we don't full the queue |
256 pygame.event.clear(ANIM_ID) | |
257 pygame.event.clear(MOVE_FOX_ID) | 252 pygame.event.clear(MOVE_FOX_ID) |
258 # Ensure any outstanding animitions get cleaned up | 253 # Ensure any outstanding animitions get cleaned up |
259 self.cycle_count += 1 | 254 self.cycle_count += 1 |
260 if self.cycle_count > constants.NIGHT_LENGTH: | 255 if self.cycle_count > constants.NIGHT_LENGTH: |
261 return pygame.event.post(START_DAY) | 256 return pygame.event.post(START_DAY) |
262 if self.game.gameboard.do_night_step(): | 257 if self.game.gameboard.do_night_step(): |
263 # All foxes are gone/safe, so dawn happens | 258 # All foxes are gone/safe, so dawn happens |
264 return pygame.event.post(START_DAY) | 259 return pygame.event.post(START_DAY) |
265 # Re-enable timers | 260 # Re-enable timers |
266 pygame.time.set_timer(ANIM_ID, self.cycle_time) | 261 pygame.time.set_timer(MOVE_FOX_ID, self.cycle_time) |
267 pygame.time.set_timer(MOVE_FOX_ID, 4*self.cycle_time) | |
268 elif e.type is not QUIT: | 262 elif e.type is not QUIT: |
269 self.game.main_app.event(e) | 263 self.game.main_app.event(e) |
270 | 264 |
271 def loop(self): | 265 def loop(self): |
272 self.game.gameboard.loop() | 266 self.game.gameboard.loop() |
284 def init(self): | 278 def init(self): |
285 """Setup everything""" | 279 """Setup everything""" |
286 sound.stop_background_music() | 280 sound.stop_background_music() |
287 self.game.create_game_over() | 281 self.game.create_game_over() |
288 pygame.time.set_timer(MOVE_FOX_ID, 0) | 282 pygame.time.set_timer(MOVE_FOX_ID, 0) |
289 pygame.time.set_timer(ANIM_ID, 0) | |
290 | 283 |
291 def event(self, e): | 284 def event(self, e): |
292 if e.type is KEYDOWN: | 285 if e.type is KEYDOWN: |
293 if e.key == K_ESCAPE: | 286 if e.key == K_ESCAPE: |
294 return MainMenuState(self.game) | 287 return MainMenuState(self.game) |
318 GO_HELP_SCREEN = pygame.event.Event(USEREVENT, name="GO_HELP_SCREEN") | 311 GO_HELP_SCREEN = pygame.event.Event(USEREVENT, name="GO_HELP_SCREEN") |
319 GO_LEVEL_SCREEN = pygame.event.Event(USEREVENT, name="GO_LEVEL_SCREEN") | 312 GO_LEVEL_SCREEN = pygame.event.Event(USEREVENT, name="GO_LEVEL_SCREEN") |
320 DO_LOAD_LEVEL = pygame.event.Event(USEREVENT, name="DO_LEVEL_SCREEN") | 313 DO_LOAD_LEVEL = pygame.event.Event(USEREVENT, name="DO_LEVEL_SCREEN") |
321 FAST_FORWARD = pygame.event.Event(USEREVENT, name="FAST_FORWARD") | 314 FAST_FORWARD = pygame.event.Event(USEREVENT, name="FAST_FORWARD") |
322 MOVE_FOX_ID = USEREVENT + 1 | 315 MOVE_FOX_ID = USEREVENT + 1 |
323 ANIM_ID = USEREVENT + 6 | |
324 MOVE_FOXES = pygame.event.Event(MOVE_FOX_ID, name="MOVE_FOXES") | 316 MOVE_FOXES = pygame.event.Event(MOVE_FOX_ID, name="MOVE_FOXES") |
325 QUIT = pygame.event.Event(QUIT) | 317 QUIT = pygame.event.Event(QUIT) |
326 | 318 |
327 # Due to the way pgu's loop timing works, these will only get proceesed | 319 # Due to the way pgu's loop timing works, these will only get proceesed |
328 # at intervals of 10ms, so there's no point in them not being multiples of 10 | 320 # at intervals of 10ms, so there's no point in them not being multiples of 10 |
329 FAST_ANIM_SPEED=20 | 321 FAST__SPEED=80 |
330 SLOW_ANIM_SPEED=50 | 322 SLOW__SPEED=200 |