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 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)
|