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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
#!/usr/bin/env python3
import argparse
import pygame
from pycameltris.controller import Controller, KeyboardController, JoystickController
from pycameltris.screens.Screen import Screen
from pycameltris.screens.InGame import InGame as InGameScreen, Player
from pycameltris.screens.Pause import Pause as PauseScreen
from pycameltris.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)
|