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