mirror of
https://github.com/kristoferssolo/2048.git
synced 2025-10-21 15:20:35 +00:00
44 lines
1.3 KiB
Python
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)
|