Repository navigation
Expand file tree
/
Copy pathgame.py
More file actions
65 lines (49 loc) · 1.76 KB
/
Copy pathgame.py
File metadata and controls
65 lines (49 loc) · 1.76 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
import pygame as pg
from secrets import token_hex
from os import path
from lib.scene import StudentIDInputScene
class EventWrapper:
def __init__(self, events):
self.events = events
def __contains__(self, item):
return item in self['type']
def __getitem__(self, key):
return [event.__getattribute__(key) for event in self.events]
class Game:
def __init__(self):
pg.init()
self.time = pg.time.get_ticks()
self.screen = pg.display.set_mode((800, 800))
pg.display.set_caption("DodgeGame")
self.clock = pg.time.Clock()
self.finished = False
self.offline = True
self.session = str(token_hex(20))
self.api_url = "https://game-api.sserve.work"
if path.exists("secrets"):
with open("secrets", "r", encoding="utf-8") as f:
self.api_authkey = f.readline().replace("\n", "")
else:
self.api_authkey = ""
self.student_grade = None
self.student_class = None
self.student_number = None
self.change_scene(StudentIDInputScene)
self.playable_count = 3
def start(self):
while not self.finished:
self.time = pg.time.get_ticks()
events = EventWrapper(pg.event.get())
if pg.QUIT in events:
break
self.screen.fill(self.scene.screen_color)
self.scene.update(events)
self.scene.render(self.screen)
pg.display.flip()
pg.quit()
def change_scene(self, sceneObjClass, datas={}):
self.scene = sceneObjClass(self, datas)
def quit(self):
self.finished = True
if __name__ == "__main__":
Game().start()