def run(self, game, state_stack): """starts the menu state""" backg = rabbyt.Sprite('1Menu_Screen1.png') self.game = game self.state_stack = state_stack self.menu_option = 0 self.game.user.score = 0 text_start = FontSprite(game.font, "Start Game") text_instruct = FontSprite(game.font, "Instructions") text_score = FontSprite(game.font, "High Scores") text_quit = FontSprite(game.font, "Quit") #set menu item positions text_start.xy = (-65, 100) text_instruct.xy = (-70, 50) text_score.xy = (-70, 0) text_quit.xy = (-19, -50) self.menu_items = [ text_start, \ text_instruct, \ text_score, \ text_quit] self.highlight() game.done = False while not game.done: pygame.event.pump() for event in pygame.event.get(): if event.type == QUIT: pass #self.quit() elif event.type == KEYDOWN: self.key_press(event.key) elif event.type == pygame.JOYBUTTONDOWN: self.handle_joy() rabbyt.clear() backg.render() text_start.render() text_instruct.render() text_score.render() text_quit.render() pygame.display.flip() game.clock.tick(40)
def run(self, game, state_stack): header = rabbyt.Sprite('1bunny3.png') font = Font(pygame.font.Font(None, 80)) name_list = [] score_list = [] for i in range(5): temp = FontSprite(font, str(game.high_score_names[i])) temp2 = FontSprite(font, str(game.high_scores[i])) temp.rgb = (255, 255, 255) temp2.rgb = (255, 255, 255) temp.xy = (-220, 87 - 55*i) temp2.xy = (150, 87 - 55*i) name_list.append(temp) score_list.append(temp2) game.done = False while not game.done: rabbyt.clear() header.render() for name, score in zip(name_list, score_list): name.render() score.render() for event in pygame.event.get(): if event.type == pygame.QUIT: game.done = True fdata = open("RabbitHighScores", 'w') for i in range(5): fdata.write(game.high_score_names[i] + " " + \ str(game.high_scores[i]) + "\n") elif event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE or event.key == \ pygame.K_RETURN: game.done = True state_stack.append(states.menu.Menu()) elif event.type == pygame.JOYBUTTONDOWN and game.controls.settings["Escape"]: game.done = True state_stack.append(states.menu.Menu()) game.clock.tick(40) pygame.display.flip()
def run(self, game, state_stack): """Makes the Cutscene run""" game.set_state_time() scene = rabbyt.Sprite("1cutscene.png") scene.scale = 0.95 scene.y = -60 scene.alpha = rabbyt.lerp(0.0, 0.8, startt=1, endt=8) scene.x = rabbyt.lerp(-20, 60, startt=1, endt=6) scene2 = rabbyt.Sprite("1cutscene2.png") scene2.alpha = rabbyt.lerp(0.8, 0.0, startt=6, endt=13) scene2.scale = 0.95 scene2.xy = (60, -60) words = FontSprite(game.font, "Scientist: I'll be back soon.") words.xy = (-195, -250) #set music pygame.mixer.music.stop() pygame.mixer.music.load('scene1.wav') pygame.mixer.music.play() game.done = False while not game.done: rabbyt.clear() rabbyt.set_time(game.get_ticks()/1000.0) ticks = game.get_ticks()/1000.0 if ticks < 6: scene.render() if ticks >= 6: scene2.render() if ticks >= 14: game.done = True state_stack.append(states.name.Name()) words.render() for event in pygame.event.get(): if event.type == QUIT: game.done = True fdata = open("RabbitHighScores", 'w') for i in range(5): fdata.write(game.high_score_names[i] + " " \ + str(game.high_scores[i]) + "\n") if event.type == KEYDOWN: if event.key == K_ESCAPE or event.key == K_RETURN: game.done = True state_stack.append(states.name.Name()) elif event.type == pygame.JOYBUTTONDOWN and game.joystick.get_button(game.controls.settings["Escape"]): game.done = True state_stack.append(states.name.Name()) pygame.display.flip()
def run(self, game, state_stack): """Makes the Cutscene run""" pygame.mixer.init(frequency=22050, size=-16, channels=2, buffer=4096) pygame.mixer.music.stop() pygame.mixer.music.load('scene5.wav') pygame.mixer.music.play(-1, 0.0) game.set_state_time() scene = rabbyt.Sprite("1cutscene.png") scene.scale = 0.95 scene.y = -60 scene.alpha = rabbyt.lerp(0.0, 0.8, startt=1, endt=10) scene.x = rabbyt.lerp(-20, 60, startt=1, endt=10) scene2 = rabbyt.Sprite("1cutscene2.png") scene2.alpha = rabbyt.lerp(0.8, 0.0, startt=10, endt=22) scene2.scale = 0.95 scene2.xy = (60, -60) words = FontSprite(game.font, "Girlfriend: You're Back!") words.xy = (-150, -250) game.done = False while not game.done: rabbyt.clear() rabbyt.set_time(game.get_ticks()/1000.0) ticks = game.get_ticks()/1000.0 if ticks < 10: scene.render() else: scene2.render() if ticks >= 6 and ticks < 10: words = FontSprite(game.font, "Scientist: I'm back!") words.xy = (-150, -250) elif ticks >= 10 and ticks < 14: words = FontSprite(game.font, "Scientist: And I brought flowers!") words.xy = (-200, -250) elif ticks >= 14 and ticks <18: words = FontSprite(game.font, "Girlfriend: And you brought flowers!") words.xy = (-220, -250) elif ticks >= 18 and ticks <22: words = FontSprite(game.font, "Scientist: Do you want to go back for more?") words.xy = (-270, -250) if ticks >= 22: game.done = True state_stack.append(states.highscore.High()) words.render() for event in pygame.event.get(): if event.type == QUIT: game.done = True fdata = open("RabbitHighScores", 'w') for i in range(5): fdata.write(game.high_score_names[i] + " " \ + str(game.high_scores[i]) + "\n") if event.type == KEYDOWN: if event.key == K_ESCAPE or event.key == K_RETURN: game.done = True state_stack.append(states.highscore.High()) elif event.type == pygame.JOYBUTTONDOWN and game.joystick.get_button(game.controls.settings["Escape"]): game.done = True state_stack.append(states.highscore.High()) pygame.display.flip()