#!/usr/bin/env python3 import argparse import pygame from cameltris.controller import Controller, KeyboardController, JoystickController from cameltris.screens.Screen import Screen from cameltris.screens.InGame import InGame as InGameScreen, Player from cameltris.screens.Pause import Pause as PauseScreen from cameltris.misc import Pause, UnPause PARSER = argparse.ArgumentParser() PARSER.add_argument("--starting-level", type=int, choices=list(range(1, 30)), default=1) PARSER.add_argument("--joystick", type=int, dest="joystick_id", metavar="Joystick ID") ARGS = vars(PARSER.parse_args()) print(ARGS) pygame.init() screen = pygame.display.set_mode((801, 1000)) controller: Controller if ARGS["joystick_id"] is not None: joystick = pygame.joystick.Joystick(ARGS["joystick_id"]) joystick.init() controller = JoystickController(joystick) else: controller = KeyboardController(pygame.key) # Just one player players = [Player(controller, ARGS["starting_level"])] for player in players: player.refresh_piece_preview_canvas() clock = pygame.time.Clock() current_screen: Screen current_screen = ingame_screen = InGameScreen(players, screen) while True: try: current_screen.oneframe() except Pause: current_screen = PauseScreen(screen) except UnPause: current_screen = ingame_screen current_screen.refresh() pygame.display.update() clock.tick(60)