Example #1
0
    def start(self):
        old_score = 0
        count = 0
        snake = Snake.Snake(self.x, self.y, 'red')
        food = Food.Food(self.x, self.y)
        pygame.mixer.music.load('data/music/soundtrack.mp3')

        if self.SoundButton.check_mode():
            pygame.mixer.music.play(1)
            pygame.mixer.music.set_volume(0.4)
        self.game_on = True
        while self.game_on:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    self.terminate()
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_RIGHT or event.key == ord('d'):
                        snake.check_direction("RIGHT")
                    elif event.key == pygame.K_LEFT or event.key == ord('a'):
                        snake.check_direction("LEFT")
                    elif event.key == pygame.K_UP or event.key == ord('w'):
                        snake.check_direction("UP")
                    elif event.key == pygame.K_DOWN or event.key == ord('s'):
                        snake.check_direction("DOWN")
                    elif event.key == pygame.K_ESCAPE:
                        pygame.mixer.music.pause()
                        menu = Menu.PauseMenu(self.screen_size, 1)
                        menu.start()
                        pygame.mixer.music.unpause()
                if event.type == pygame.MOUSEBUTTONDOWN:
                    self.get_click(event.pos)
            self.menu_screen.blit(self.menu_background_image, (0, 0))
            self.SoundButton.draw()
            snake.change_head_pos()
            ate_snake = snake.check_snake(food.get_pos(), food.size[0])
            if ate_snake:
                self.score += 1
            if self.score != old_score and self.score % self.score_next_wall == 0:
                wall = Obstacles.Wall(self.x, self.y)
                wall.spawn(self.coords_walls)
                self.coords_walls.append(wall.get_pos())
                self.level += 1
                old_score = self.score
                if self.SoundButton.check_mode():
                    pygame.mixer.Sound.play(self.level_up_sound)
                self.walls.append(wall)
            if ate_snake:
                if self.SoundButton.check_mode():
                    pygame.mixer.Sound.play(self.food_sound)
                food.update(self.coords_walls)
            for wall in self.walls:
                self.menu_screen.blit(wall.image, wall.rect)
            snake.snake_design()

            snake.update(self.menu_screen)
            size_wall = self.get_wall_size()
            snake.check_collision(self, self.coords_walls, size_wall)
            self.menu_screen.blit(food.image, food.rect)
            self.show_score()
            self.show_level()
            pygame.display.flip()
            self.clock.tick(self.fps)
            count += 1
            self.show_score()