summaryrefslogtreecommitdiff
path: root/cameltris.py
blob: b454db2d38f5463061f1e5269e4d85f4aaf123c9 (plain)
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
#!/usr/bin/env python3

import argparse

import pygame

from pycameltris.controller import KeyboardController, JoystickController
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))

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