def __init__(self, window, *args, **kwargs): """ The initial state. This present the player with a list of choices that determine the next game state. """ State.__init__(self, window, *args, **kwargs) self.window.set_caption("Survive by Nine") self.menuloc = (400, 215) self.choices = {1: 'New', 2: 'Quit' } self.choice = 1 self.labels = self.build_labels() self.load_resources() self.emitter = BubbleEmitter(window) pyglet.clock.schedule_interval(self.emitter.update, 1.0/60.0) self.labels[0].set_style("bold", True)
class MainMenuState (State): def __init__(self, window, *args, **kwargs): """ The initial state. This present the player with a list of choices that determine the next game state. """ State.__init__(self, window, *args, **kwargs) self.window.set_caption("Survive by Nine") self.menuloc = (400, 215) self.choices = {1: 'New', 2: 'Quit' } self.choice = 1 self.labels = self.build_labels() self.load_resources() self.emitter = BubbleEmitter(window) pyglet.clock.schedule_interval(self.emitter.update, 1.0/60.0) self.labels[0].set_style("bold", True) def build_labels(self): tl = [] for c in self.choices.keys(): tl.append(pyglet.text.Label(self.choices[c], font_name='Monospace', font_size=24, x=self.menuloc[0], y=self.menuloc[1]-(40*c), anchor_x='center', anchor_y='center')) return tl def load_resources(self): self.logo = pyglet.resource.image("logo.png") self.grass = pyglet.resource.image("grass.png") self.blend = pyglet.resource.image("blend.png") self.ground = pyglet.resource.image("ground1.png") self.select = pyglet.resource.media('menu_select.wav',\ streaming=False) def on_draw(self): self.window.clear() self.grass.blit(20,0) self.grass.blit(620,0) self.ground.blit(190, 0) self.ground.blit(890, 0) self.emitter.draw() self.blend.blit(0,0) self.logo.blit(10, self.window.height-self.logo.height) for l in self.labels: l.draw() def on_key_press(self, k, args): labels = self.labels if k == key.UP: if self.choice == 1: labels[self.choice-1].set_style("bold", False) self.choice = len(self.choices) labels[self.choice-1].set_style("bold", True) else: labels[self.choice-1].set_style("bold", False) self.choice -= 1 labels[self.choice-1].set_style("bold", True) elif k == key.DOWN: if self.choice == len(self.choices): labels[self.choice-1].set_style("bold", False) self.choice = 1 labels[self.choice-1].set_style("bold", True) else: labels[self.choice-1].set_style("bold", False) self.choice += 1 labels[self.choice-1].set_style("bold", True) elif k == key.ENTER: if self.choice == 1: self.window.push_state(Playing) elif self.choice == 2: self.window.pop_state() self.window.close() elif k == key.ESCAPE: self.window.pop_state() self.window.close() else: return pyglet.event.EVENT_HANDLED self.select.play().volume = 0.1 def on_lose_focus(self): pyglet.clock.unschedule(self.emitter.update) self.player.pause() return pyglet.event.EVENT_HANDLED def on_gain_focus(self): self.music = pyglet.resource.media('menu.mp3') self.player = self.music.play() self.player.volume = 0.1 pyglet.clock.schedule_interval(self.emitter.update, 1.0/60.0) return pyglet.event.EVENT_HANDLED