comparison skaapsteker/engine.py @ 479:fb9258d66137

New Main Menu
author Stefano Rivera <stefano@rivera.za.net>
date Sat, 09 Apr 2011 21:59:59 +0200
parents 95527fd29872
children 0675f390653c
comparison
equal deleted inserted replaced
478:77cfc17ac949 479:fb9258d66137
40 while True: 40 while True:
41 events = pygame.event.get() 41 events = pygame.event.get()
42 for ev in events: 42 for ev in events:
43 if ev.type is QUIT: 43 if ev.type is QUIT:
44 return 44 return
45 if NewGameEvent.matches(ev):
46 self.game_state.new_game()
47 fox = self.game_state.world.fox
48 ChangeScene.post((ev.scene_type, '.'.join([fox.level, fox.doorway])))
49 if ChangeScene.matches(ev): 45 if ChangeScene.matches(ev):
50 next_scene = ev.next_scene 46 next_scene = ev.next_scene
51 if not isinstance(next_scene, Scene): 47 if not isinstance(next_scene, Scene):
52 next_scene = next_scene[0](self.game_state, self.soundsystem, *(next_scene[1:])) 48 next_scene = next_scene[0](self.game_state, self.soundsystem, *(next_scene[1:]))
53 self.change_scene(next_scene) 49 self.change_scene(next_scene)
103 99
104 @classmethod 100 @classmethod
105 def matches(cls, ev): 101 def matches(cls, ev):
106 return ev.type is USEREVENT and ev.utype == cls.utype 102 return ev.type is USEREVENT and ev.utype == cls.utype
107 103
108 class NewGameEvent(UserEvent):
109
110 utype = "NEW_GAME_EVENT"
111
112 @classmethod
113 def post(cls, scene_type):
114 super(NewGameEvent, cls).post(scene_type=scene_type)
115 104
116 class ChangeScene(UserEvent): 105 class ChangeScene(UserEvent):
117 106
118 utype = "CHANGE_SCENE" 107 utype = "CHANGE_SCENE"
119 108