2048/src/py2048/screens/game.py
2024-01-03 00:49:09 +02:00

44 lines
1.3 KiB
Python

import pygame
from loguru import logger
from py2048 import Config
from py2048.objects import Board
from py2048.utils import Direction, setup_logger
from .header import Header
class Game:
def __init__(self) -> None:
self.header = Header()
self.board = Board()
def draw(self, surface: pygame.Surface) -> None:
surface.fill(Config.COLORSCHEME.BG)
self.board.draw(surface)
self.header.draw(surface, 2048)
pygame.display.flip()
def handle_events(self, event: pygame.Event) -> None:
if event.type == pygame.KEYDOWN:
if event.key in (pygame.K_LEFT, pygame.K_a, pygame.K_h):
self.move_left()
elif event.key in (pygame.K_RIGHT, pygame.K_d, pygame.K_l):
self.move_right()
elif event.key in (pygame.K_UP, pygame.K_w, pygame.K_k):
self.move_up()
elif event.key in (pygame.K_DOWN, pygame.K_s, pygame.K_j):
self.move_down()
def move_up(self) -> None:
self.board.move(Direction.UP)
def move_down(self) -> None:
self.board.move(Direction.DOWN)
def move_left(self) -> None:
self.board.move(Direction.LEFT)
def move_right(self) -> None:
self.board.move(Direction.RIGHT)