summaryrefslogtreecommitdiffstats
path: root/game.py
blob: 2ff8f924c6f548ca703ac70144ead25f80c7362c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from board import Board
from food_manager import FoodManager
from label import Label
from player import Player
from setup import *


class Game:

    def __init__(self):
        self.board = Board()
        self.food_manager = FoodManager()
        self.snake = Player(center - 2 * x_unit)
        self.fast_forward = False
        self.ff_label = Label((0, 0), ">>", WHITE, None, 50)

    def update(self, delta):
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                return COMMAND_EXIT
            elif event.type == pygame.KEYDOWN:
                self.snake.get_input(event)
                if event.key == pygame.K_SPACE:
                    self.fast_forward = not self.fast_forward
        self.ff_label.update(delta)
        self.food_manager.update(self.snake.body)
        status = self.snake.update(delta * (3 ** self.fast_forward), self.food_manager)
        if len(self.snake.body) == LENGTH * HEIGHT:
            return COMMAND_WIN
        if status == COMMAND_LOSE:
            return status
        return

    def draw(self, surf):
        self.board.draw(surf)
        self.snake.draw(surf)
        self.food_manager.draw(surf)
        if self.fast_forward:
            self.ff_label.draw(surf, centered=False)