-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsplash.py
More file actions
103 lines (87 loc) · 3.41 KB
/
splash.py
File metadata and controls
103 lines (87 loc) · 3.41 KB
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import os
import state_manager
import menu
import highscore
import howto
import game
import quit_
import about
import consts
import locations
import chooser
import pygame
class Splash(state_manager.State):
def __init__(self) -> None:
super().__init__()
self._initialized = False
self._was_rendered = False
self._skip = False
self._tick = 2500
self._idx = 0
self._splashs_loaded = False
self._surfaces = [pygame.image.load(locations.image('metagamejam-splash.png')).convert_alpha()]
def render(self) -> None:
self.screen.blit(self._surfaces[min(len(self._surfaces) - 1, self._idx)], (0, 0))
pygame.display.flip()
self._was_rendered = True
def input(self) -> None:
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.state_manager.terminate_main_loop()
elif event.type == pygame.KEYDOWN:
self._skip = True
elif event.type == pygame.MOUSEBUTTONDOWN:
l, m, r = pygame.mouse.get_pressed()
if l == 1:
self._skip = True
def update(self, delta: int, fps: float) -> None:
if self._was_rendered:
if not self._splashs_loaded:
self._surfaces += [
pygame.image.load(locations.image('coder-splash.png')).convert_alpha(),
pygame.image.load(locations.image('thinkdownstairs-splash.png')).convert_alpha()]
self._splashs_loaded = True
return
if self._initialized:
if self._skip:
self._skip = False
self._idx += 1
self._tick = 2500
if self._idx >= len(self._surfaces):
self.state_manager.change_state(menu.Menu)
return
self._tick -= delta
if self._tick <= 0:
self._idx += 1
self._tick = 2500
if self._idx >= len(self._surfaces):
self.state_manager.change_state(menu.Menu)
return
else:
m = menu.Menu()
m.add(menu.MenuEntry('How To Play', howto.HowTo))
m.add(menu.MenuEntry('Choose Your Editor', chooser.Chooser))
m.add(menu.MenuEntry('Start', game.Game))
m.add(menu.MenuEntry('Highscore', highscore.Highscore))
m.add(menu.MenuEntry('Credits', about.About))
m.add(menu.MenuEntry('Quit', quit_.Quit))
self.state_manager.add_state(m)
self.state_manager.add_state(howto.HowTo())
self.state_manager.add_state(chooser.Chooser())
self.state_manager.add_state(highscore.Highscore())
self.state_manager.add_state(game.Game())
self.state_manager.add_state(about.About())
self.state_manager.add_state(quit_.Quit())
self._initialized = True
if __name__ == '__main__':
def init():
pygame.init()
screen = pygame.display.set_mode((consts.SCREEN_W, consts.SCREEN_H))
pygame.display.set_caption('Coder')
pygame.mouse.set_visible(0)
return screen
sm = state_manager.StateManager(init())
s = Splash()
sm.add_state(s)
sm.change_state(Splash)
sm.main_loop()