예제 #1
0
    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)
예제 #2
0
    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()
예제 #3
0
    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()
예제 #4
0
    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()