Skip to content

Commit

Permalink
Refactored scenes and help menu
Browse files Browse the repository at this point in the history
  • Loading branch information
Nikogenia committed Feb 25, 2024
1 parent f9c5cb4 commit bbc7483
Show file tree
Hide file tree
Showing 14 changed files with 81 additions and 57 deletions.
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,12 @@ This is the main software of the arcade machine, which controls
all games and provides a menu. The gaming machine is a project of the
Makerspace for the Bodensee Gymnasium Lindau in Germany.

### Trailer
Here is a trailer of our project:\
https://www.youtube.com/watch?v=8V85Eo9Pjnc

### Details
Version: 1.2.0\
Version: 1.3.0\
Author: Makerspace\
Framework: Nikocraft (v0.0.4)\
Database: Lernplattform Mebis Bayern (Moodle)
Expand All @@ -17,7 +21,7 @@ Database: Lernplattform Mebis Bayern (Moodle)
Management: Dr. Andre Scherl\
Software: Nikogenia (Nikolas Beyer)\
Hardware: Valis World (Valentin Sutter)\
Games: checkout the menu
Games: Makerspace (see menu)

\
**Makerspace © 2024**\
Expand Down
1 change: 1 addition & 0 deletions configs.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ def __init__(self, logger):
"short_description_split": 0,
"description": "This is a template game!",
"author": "Makerspace",
"owners": [],
"image_name": "Template.png",
"url": "https://www.bodensee-gymnasium.de/"
}
Expand Down
2 changes: 1 addition & 1 deletion game/game.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def from_json(cls, json: dict, logger: Logger) -> Self:
"short_description_split": ((), int),
"description": ((), str),
"author": ((), str),
"owners": ((), list[int]),
"owners": ((), list),
"image_name": ((), str),
"url": (("web", "makecode", "scratch"), str)
}
Expand Down
12 changes: 7 additions & 5 deletions game/game_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@
CODE = """
export DISPLAY=:0
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/kiosk/.config/chromium/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/kiosk/.config/chromium/Default/Preferences
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/maker/.config/chromium/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/maker/.config/chromium/Default/Preferences
exec /usr/bin/chromium --window-size=1920,1080 --kiosk --window-position=0,0 #URL#
exec /usr/bin/chromium --start-fullscreen #URL#
"""


Expand Down Expand Up @@ -78,7 +78,8 @@ def run(self) -> None:
if self.start_game:

self.logger.info(f"Start game '{self.current.name}' ...")
self.open_browser()
if self.current.type in ("web", "makecode", "scratch"):
self.open_browser()
self.start_game = False
self.main.window.background_video_update = False

Expand All @@ -91,7 +92,8 @@ def run(self) -> None:
admin = self.main.user_manager.is_admin(player.user_id) or \
player.user_id in self.current.owners
if player.time <= 0:
self.close_browser()
if self.current.type in ("web", "makecode", "scratch"):
self.close_browser()
else:
if not admin:
player.time -= 1
Expand Down
4 changes: 2 additions & 2 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def __init__(self, args):
super(Main, self).__init__(args,
name="Msp Arcade",
author="Makerspace",
version="1.2.0",
version="1.3.0",
short_description="A Makerspace project for an arcade machine in the school",
description="This is the main software of the arcade machine, which controls " +
"all games and provides a menu. The gaming machine is a project of the " +
Expand All @@ -34,7 +34,7 @@ def __init__(self, args):
"Management: Dr. Andre Scherl\n"
"Software: Nikogenia (Nikolas Beyer)\n" +
"Hardware: Valis World (Valentin Sutter)\n" +
"Games: checkout the menu",
"Games: Makerspace (see menu)",
log_path=PATH_LOG,
log_thread=True)

Expand Down
4 changes: 2 additions & 2 deletions start.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
export DISPLAY=:0
cd /home/maker/MspArcade
cd /home/maker/MspArcade || exit
source venv/bin/activate
python main.py
python3 main.py
2 changes: 1 addition & 1 deletion window/scenes/banned.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def render(self) -> None:
font = self.window.font.get("text", 35)
text = font.render("Bestätige deine Anwesenheit mit !", True, nc.RGB.WHITE)
self.screen.blit(text, ((self.width - text.get_width()) / 2, height + 140))
draw_button(self.screen, font, 32, (self.width - text.get_width()) / 2, height + 140, ACTIVITY_BUTTON)
draw_button(self.screen, font, 32, (self.width - text.get_width()) / 2, height + 140, BUTTON_C_COLOR)

def update(self) -> None:

Expand Down
6 changes: 3 additions & 3 deletions window/scenes/details.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ def render(self) -> None:
height = math.sin(self.tick / 10) * 15 + 950
text = font.render("Drücke , um mit diesem Spiel fortzufahren!", True, nc.RGB.WHITE)
self.screen.blit(text, ((self.width - text.get_width()) / 2, height))
draw_button(self.screen, font, 7, (self.width - text.get_width()) / 2, height, CONFIRM_BUTTON)
draw_button(self.screen, font, 7, (self.width - text.get_width()) / 2, height, BUTTON_A_COLOR)

# Render activity request
if self.activity_request_tick != self.activity_request_tick_target or self.activity_request_tick == 20:
Expand All @@ -137,7 +137,7 @@ def render(self) -> None:
font = self.window.font.get("text", 35)
text = font.render("Bestätige deine Anwesenheit mit !", True, nc.RGB.WHITE)
self.screen.blit(text, ((self.width - text.get_width()) / 2, height + 140))
draw_button(self.screen, font, 32, (self.width - text.get_width()) / 2, height + 140, ACTIVITY_BUTTON)
draw_button(self.screen, font, 32, (self.width - text.get_width()) / 2, height + 140, BUTTON_C_COLOR)

def update(self) -> None:

Expand Down Expand Up @@ -186,6 +186,6 @@ def event(self, event: pg.event.Event) -> None:
self.back_x = -1
if event.key == pg.K_RETURN:
self.window.change_scene("login", {"back": "details"}, transition_duration=12, transition_pause=7)
if event.key == pg.K_r:
if event.key == pg.K_m:
self.window.main.game_manager.current = None
self.window.change_scene("idle", transition_duration=12, transition_pause=7)
4 changes: 2 additions & 2 deletions window/scenes/login.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ def render(self) -> None:
font = self.window.font.get("text", 35)
text = font.render("Bestätige deine Anwesenheit mit !", True, nc.RGB.WHITE)
self.screen.blit(text, ((self.width - text.get_width()) / 2, height + 140))
draw_button(self.screen, font, 32, (self.width - text.get_width()) / 2, height + 140, ACTIVITY_BUTTON)
draw_button(self.screen, font, 32, (self.width - text.get_width()) / 2, height + 140, BUTTON_C_COLOR)

def update(self) -> None:

Expand Down Expand Up @@ -242,7 +242,7 @@ def event(self, event: pg.event.Event) -> None:
if event.key == pg.K_LEFT:
self.window.change_scene(self.args["back"], transition_duration=12, transition_pause=7)
self.back_x = -1
if event.key == pg.K_r:
if event.key == pg.K_m:
self.window.main.game_manager.current = None
self.window.change_scene("idle", transition_duration=12, transition_pause=7)

Expand Down
6 changes: 3 additions & 3 deletions window/scenes/menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ def render(self) -> None:
height = math.sin(self.tick / 10) * 15 + 960
text = font.render("Wähle mit ein Spiel aus!", True, nc.RGB.WHITE)
self.screen.blit(text, ((self.width - text.get_width()) / 2, height))
draw_button(self.screen, font, 10, (self.width - text.get_width()) / 2, height, CONFIRM_BUTTON)
draw_button(self.screen, font, 10, (self.width - text.get_width()) / 2, height, BUTTON_A_COLOR)

# Render activity request
if self.activity_request_tick != self.activity_request_tick_target or self.activity_request_tick == 20:
Expand All @@ -128,7 +128,7 @@ def render(self) -> None:
font = self.window.font.get("text", 35)
text = font.render("Bestätige deine Anwesenheit mit !", True, nc.RGB.WHITE)
self.screen.blit(text, ((self.width - text.get_width()) / 2, height + 140))
draw_button(self.screen, font, 32, (self.width - text.get_width()) / 2, height + 140, ACTIVITY_BUTTON)
draw_button(self.screen, font, 32, (self.width - text.get_width()) / 2, height + 140, BUTTON_C_COLOR)

def render_menu(self) -> None:

Expand Down Expand Up @@ -360,7 +360,7 @@ def event(self, event: pg.event.Event) -> None:
if event.key == pg.K_RETURN:
self.window.change_scene("login", {"back": "menu"}, transition_duration=12, transition_pause=7)

if event.key == pg.K_r:
if event.key == pg.K_m:
self.window.main.game_manager.current = None
self.window.change_scene("idle", transition_duration=12, transition_pause=7)

Expand Down
6 changes: 3 additions & 3 deletions window/scenes/overview.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ def render(self) -> None:
text = font.render(content, True, nc.RGB.WHITE if self.player.time > 5 else nc.RGB.INDIANRED1)
self.screen.blit(text, ((self.width - text.get_width()) / 2, height))
if self.player.time > 5:
draw_button(self.screen, font, 21, (self.width - text.get_width()) / 2, height, CONFIRM_BUTTON)
draw_button(self.screen, font, 21, (self.width - text.get_width()) / 2, height, BUTTON_A_COLOR)

# Render activity request
if self.activity_request_tick != self.activity_request_tick_target or self.activity_request_tick == 20:
Expand All @@ -184,7 +184,7 @@ def render(self) -> None:
font = self.window.font.get("text", 35)
text = font.render("Bestätige deine Anwesenheit mit !", True, nc.RGB.WHITE)
self.screen.blit(text, ((self.width - text.get_width()) / 2, height + 140))
draw_button(self.screen, font, 32, (self.width - text.get_width()) / 2, height + 140, ACTIVITY_BUTTON)
draw_button(self.screen, font, 32, (self.width - text.get_width()) / 2, height + 140, BUTTON_C_COLOR)

def update(self) -> None:

Expand Down Expand Up @@ -238,7 +238,7 @@ def event(self, event: pg.event.Event) -> None:
if self.player.time > 5:
self.window.change_scene("play", transition_duration=12, transition_pause=7)

if event.key == pg.K_r:
if event.key == pg.K_m:
self.window.main.user_manager.current = ""
self.window.main.game_manager.current = None
self.window.change_scene("idle", transition_duration=12, transition_pause=7)
4 changes: 2 additions & 2 deletions window/scenes/play.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@ def update(self) -> None:
def event(self, event: pg.event.Event) -> None:

if event.type == pg.KEYDOWN:
if event.key == pg.K_q:
if event.key == pg.K_n:
self.window.main.game_manager.close_browser()
if event.key == pg.K_r:
if event.key == pg.K_m:
self.window.main.game_manager.close_browser()
self.reset = True

Expand Down
6 changes: 3 additions & 3 deletions window/scenes/rating.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ def render(self) -> None:
text = font.render(info, True, nc.RGB.WHITE)
self.screen.blit(text, (1362 - text.get_width() / 2, 780))
if info == "Speichern ":
draw_button(self.screen, font, 10, 1362 - text.get_width() / 2, 780, CONFIRM_BUTTON)
draw_button(self.screen, font, 10, 1362 - text.get_width() / 2, 780, BUTTON_A_COLOR)

# Rating prompt
font = self.window.font.get("text", 35)
Expand All @@ -193,7 +193,7 @@ def render(self) -> None:
font = self.window.font.get("text", 35)
text = font.render("Bestätige deine Anwesenheit mit !", True, nc.RGB.WHITE)
self.screen.blit(text, ((self.width - text.get_width()) / 2, height + 140))
draw_button(self.screen, font, 32, (self.width - text.get_width()) / 2, height + 140, ACTIVITY_BUTTON)
draw_button(self.screen, font, 32, (self.width - text.get_width()) / 2, height + 140, BUTTON_C_COLOR)

def update(self) -> None:

Expand Down Expand Up @@ -251,7 +251,7 @@ def event(self, event: pg.event.Event) -> None:
if self.stars:
self.window.main.user_manager.set_rating(self.player.auth_id, self.game.id, self.stars)
self.save_tick = self.tick
if event.key == pg.K_r:
if event.key == pg.K_m:
self.window.change_scene("idle", transition_duration=12, transition_pause=7)

if event.key == pg.K_UP:
Expand Down
73 changes: 45 additions & 28 deletions window/window.py
Original file line number Diff line number Diff line change
Expand Up @@ -437,45 +437,62 @@ def draw_help_popup(self) -> None:

text = font.render("Lesen hilft in den meisten Fällen! Sollten dennoch Fragen offenbleiben,", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 270))
text = font.render("erreicht man uns per E-Mail an \"[email protected]\" oder direkt über", True, nc.RGB.WHITE)
text = font.render("könnt ihr uns gerne jederzeit schreiben:", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 310))
text = font.render("Microsoft Teams bzw. den ByCS-Messenger.", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 350))
text = font.render("Viele Grüße wünschen im Namen des Makerspace", True, nc.RGB.WHITE)
text = font.render("E-Mail Microsoft Teams ByCS-Messenger", True, nc.RGB.GRAY60)
self.screen.blit(text, (50, 370))
text = font.render("[email protected] sutter.valentin nikola.beyer", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 410))
text = font.render("Valentin Sutter und Nikolas Beyer", True, nc.RGB.WHITE)
text = font.render(" nikolas.beyer vale.sutter", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 450))

font = self.font.get("title", 130)
text = font.render("Team", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 510))

font = self.font.get("text", 24)
text = font.render("Leitung", True, nc.RGB.GRAY60)
self.screen.blit(text, (50, 625))
text = font.render("Software", True, nc.RGB.GRAY60)
self.screen.blit(text, (50, 675))
text = font.render("Hardware", True, nc.RGB.GRAY60)
self.screen.blit(text, (50, 725))
text = font.render("Spiele", True, nc.RGB.GRAY60)
self.screen.blit(text, (50, 775))
text = font.render(" Dr. Andre Scherl", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 625))
text = font.render(" Nikolas Beyer (Nikogenia)", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 675))
text = font.render(" Valentin Sutter (Valis World)", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 725))
text = font.render(" Makerspace (siehe Menü)", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 775))

if self.main.main_config.show_offline_warning and not self.main.user_manager.online:
text = font.render("Info: Nach aktuellem Stand ist der Automat ohne Internetverbindung nicht", True, nc.RGB.RED1)
self.screen.blit(text, (50, 520))
text = font.render(" funktionsfähig. Also nicht wundern, wenn es gerade kein Netz gibt.", True, nc.RGB.RED1)
self.screen.blit(text, (50, 560))
text = font.render("Achtung: Die Datenbank kann gerade nicht erreicht werden. Der Automat ist", True, nc.RGB.RED1)
self.screen.blit(text, (50, 840))
text = font.render(" daher leider eventuell nicht funktionsfähig. Wir entschuldigen uns", True, nc.RGB.RED1)
self.screen.blit(text, (50, 880))
text = font.render(" für diesen Vorfall und arbeiten an einer Lösung!", True, nc.RGB.RED1)
self.screen.blit(text, (50, 920))

font = self.font.get("title", 100)
text = font.render("Credits", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 610))
text = font.render("GitHub", True, nc.RGB.GRAY60)
self.screen.blit(text, (1418, 575))
text = font.render("YouTube", True, nc.RGB.GRAY60)
self.screen.blit(text, (1656, 575))

font = self.font.get("text", 24)
text = font.render("Leitung Dr. Andre Scherl", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 700))
text = font.render("Software Nikolas Beyer (Nikogenia)", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 750))
text = font.render("Hardware Valentin Sutter (Valis World)", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 800))
text = font.render("Spiele Makerspace (siehe Menü)", True, nc.RGB.WHITE)
self.screen.blit(text, (50, 850))

text = font.render("GitHub", True, nc.RGB.WHITE)
self.screen.blit(text, (1618, 700))
text = font.render("YouTube", True, nc.RGB.WHITE)
self.screen.blit(text, (1618, 700))

self.screen.blit(self.github_code, (1600, 750))
self.screen.blit(self.github_code, (1400, 620))
self.screen.blit(self.youtube_code, (1650, 620))

font = self.font.get("text", 24)
text = font.render("Makerspace © 2024 - Open Source (MIT Licence)", True, nc.RGB.WHITE)
self.screen.blit(text, ((self.width - text.get_width()) / 2, 980))
font = self.font.get("text", 16)
text = font.render("Bodensee-Gymnasium Lindau", True, nc.RGB.WHITE)
self.screen.blit(text, ((self.width - text.get_width()) / 2, 1020))

font = self.font.get("text", 20)
text = font.render("MspArcade", True, nc.RGB.GRAY60)
self.screen.blit(text, (35, 1020))
text = font.render(f"v{self.main.version}", True, nc.RGB.GRAY60)
self.screen.blit(text, (self.width - text.get_width() - 35, 1020))

0 comments on commit bbc7483

Please sign in to comment.