diff --git a/src/gamestate.py b/src/gamestate.py index ca1aef7..8b8e553 100644 --- a/src/gamestate.py +++ b/src/gamestate.py @@ -3,6 +3,7 @@ import gamestates.title import gamestates.overworld import gamestates.battle import gamestates.gameover +import gamestates.credits gamestates = { "none": gamestates.none, @@ -10,6 +11,7 @@ gamestates = { "overworld": gamestates.overworld, "battle": gamestates.battle, "gameover": gamestates.gameover, + "credits": gamestates.credits, } gamestate = "none" diff --git a/src/gamestates/credits.py b/src/gamestates/credits.py new file mode 100644 index 0000000..8fac8b3 --- /dev/null +++ b/src/gamestates/credits.py @@ -0,0 +1,33 @@ +import menu +import text +import assets +import gamestate + +CREDITS_MUSIC = "mus_fnafsux" +CREDITS_LENGTH = 10 +SCROLL_SPEED = 10 + +cred_text = text.TextRenderer(90, 180, 210) +end_text = text.TextRenderer(128, 100, None, True) +end_visible = False +t = 0 + +def switch(game): + assets.sounds[CREDITS_MUSIC].play() + cred_text.reset("Gratulálunk, sikerült kivinni a játékot!") + cred_text.type_all() + end_text.reset("Vége!") + end_text.type_all() + + +def update(game, dt): + global t, end_visible + t += dt + cred_text.move(0, dt * SCROLL_SPEED) + if t >= CREDITS_LENGTH: + end_visible = True + +def draw(game): + cred_text.render() + if end_visible: + end_text.render() diff --git a/src/gamestates/none.py b/src/gamestates/none.py index 8bb4861..40e834a 100644 --- a/src/gamestates/none.py +++ b/src/gamestates/none.py @@ -2,4 +2,4 @@ import gamestate # Azért létezik ez a "none" gamestate hogy meghívja az elsö gamestate init() funkcióját def update(game, dt): - gamestate.switch_gamestate(game, "overworld") + gamestate.switch_gamestate(game, "title") diff --git a/src/gamestates/overworld.py b/src/gamestates/overworld.py index 31e71de..885e000 100644 --- a/src/gamestates/overworld.py +++ b/src/gamestates/overworld.py @@ -21,7 +21,6 @@ objects = [ balthasar ] - btrans_active = False btrans_timer = 0 btrans_sound = None @@ -91,6 +90,9 @@ def start_battle(battle_id): btrans_timer = 0 def switch(game): + if len(objects) == 1: + gamestate.switch_gamestate(game, "credits") + global music_box in_battle_transition = False overworld.set_player_world_pos(game, balthasar.x, balthasar.y) diff --git a/src/gamestates/title.py b/src/gamestates/title.py index d78285d..c79b599 100644 --- a/src/gamestates/title.py +++ b/src/gamestates/title.py @@ -1,52 +1,36 @@ -import arcade -import assets -import controls import menu import text import renderers +import gamestate -text = text.TextRenderer(6, 186, 210) -panel = renderers.NineSlicesPanel(0,100,230,100) +text = text.TextRenderer(0, 50, 210) +panel = renderers.NineSlicesPanel(84,100,64,100) m = [] -def mos_1x(g): - g.mosaic = 1 - g.mos_enabled = False - -def mos_2x(g): - g.mosaic = 8 - g.mos_enabled = True +def new_game(g): + gamestate.switch_gamestate(g, "overworld") def switch(game): global m m = [ - menu.MenuItem("1", 100, 90, None, None, None, None, mos_1x, game), - menu.MenuItem("2", 100, 70 , None, None, None, None, mos_2x, game) + menu.MenuItem("Új játék!", 98, 150, None, None, None, None, new_game, game), + menu.MenuItem("Kilépés", 98, 130, None, None, None, None, quit) ] m[0].down = m[1] m[1].up = m[0] m[0].select() -def update(game, dt): - controltext = "" - - for c in controls.controls: - controltext += f"{c.label}: {c.pressed}-{c.held}\n" - - for i in m: - i.update() - text.reset(controltext) + text.reset("Irányítás:\n -WASD = mozgás\n -Enter = válaszás / interakció\n -Bal shift = Vissza") text.type_all() -def draw(game): - arcade.draw_rect_filled( - arcade.LBWH(0, 0, game.screen_width, game.screen_height), - arcade.color.RED, - ) +def update(game, dt): for i in m: - i.render() + i.update() +def draw(game): panel.render() text.render() + for i in m: + i.render()