68 lines
2.5 KiB
Python
68 lines
2.5 KiB
Python
import pygame
|
|
from tetri5.util import ConfigurationManager
|
|
from tetri5.util import TextGenerator
|
|
from tetri5.util import Controller
|
|
|
|
"""
|
|
TODO
|
|
"""
|
|
class TitleScene:
|
|
|
|
# Title screen options
|
|
ONE_PLAYER = "1 PLAYER"
|
|
TWO_PLAYER = "2 PLAYER"
|
|
|
|
def __init__(self) -> None:
|
|
self._tile_size = ConfigurationManager.get("engine", "tile-size")
|
|
self._logo_image = pygame.image.load(ConfigurationManager.get("image", "title-screen"))
|
|
self._cursor_position_one = ConfigurationManager.get("position", "cursor-option-one")
|
|
self._cursor_position_two = ConfigurationManager.get("position", "cursor-option-two")
|
|
self._cursor_position = self._cursor_position_one
|
|
self._cursor_blink_interval = ConfigurationManager.get("engine", "cursor-blink-interval")
|
|
self._cursor_blink_time = 0
|
|
self._cursor_color = pygame.Color(ConfigurationManager.get("color", "cursor"))
|
|
self._cursor_off = False
|
|
self._background_color = pygame.Color(ConfigurationManager.get("color", "window-bg"))
|
|
self._logo_position = ConfigurationManager.get("position", "title-logo")
|
|
self._option_one_position = ConfigurationManager.get("position", "option-one")
|
|
self._option_two_position = ConfigurationManager.get("position", "option-two")
|
|
self._is_multiplayer = False
|
|
|
|
def draw(self, surface: pygame.Surface) -> None:
|
|
surface.fill(self._background_color)
|
|
surface.blit(self._logo_image, self._logo_position)
|
|
|
|
TextGenerator.draw(TitleScene.ONE_PLAYER, self._option_one_position, surface)
|
|
TextGenerator.draw(TitleScene.TWO_PLAYER, self._option_two_position, surface)
|
|
|
|
if self._cursor_off:
|
|
pygame.draw.circle(surface, self._cursor_color, self._cursor_position, self._tile_size // 3)
|
|
|
|
def update(self, elapsed_time) -> None:
|
|
if Controller.key_pressed(pygame.K_UP):
|
|
self._cursor_position = self._cursor_position_one
|
|
self._is_multiplayer = False
|
|
if Controller.key_pressed(pygame.K_DOWN):
|
|
self._cursor_position = self._cursor_position_two
|
|
self._is_multiplayer = True
|
|
|
|
self._cursor_blink_time += elapsed_time
|
|
if self._cursor_blink_time >= self._cursor_blink_interval:
|
|
self._cursor_blink_time = 0
|
|
self._cursor_off = not self._cursor_off
|
|
|
|
"""
|
|
TODO
|
|
"""
|
|
class SinglePlayerScene:
|
|
pass
|
|
|
|
"""
|
|
TODO
|
|
"""
|
|
class MultiPlayerScene:
|
|
pass
|
|
|
|
|
|
|
|
|