From ae7b1a2b6629749c9df00d65a7c5e227268827fc Mon Sep 17 00:00:00 2001 From: IcECreAm777 <31211782+IcECreAm777@users.noreply.github.com> Date: Sun, 17 Jul 2022 01:00:45 +0200 Subject: moved level loading and score tracking to the game class --- godot/scenes/Game.gd | 47 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 5 deletions(-) (limited to 'godot/scenes/Game.gd') diff --git a/godot/scenes/Game.gd b/godot/scenes/Game.gd index 31e543d..29a5537 100644 --- a/godot/scenes/Game.gd +++ b/godot/scenes/Game.gd @@ -1,14 +1,23 @@ extends Spatial +const NUM_LEVELS = 9 +const PAR = [1,2,3,4,5,6,7,8,9] -# Declare member variables here. Examples: -# var a = 2 -# var b = "text" +# level control +var current_level_id = 0 +var levels = [] +# stroke control +var current_strokes = 0 +var strokes_per_level = [0,0,0,0,0,0,0,0,0] # Called when the node enters the scene tree for the first time. func _ready(): - pass # Replace with function body. + for i in range(NUM_LEVELS): + levels.append(get_node("/root/Game/Level%d" % (i+1))) + + current_strokes = 0 + levels[0].show() # Called every frame. 'delta' is the elapsed time since the previous frame. @@ -20,7 +29,6 @@ func _process(delta): - func _on_QuitButton_pressed(): get_tree().quit() @@ -29,3 +37,32 @@ func _on_ResumeButton_pressed(): $PausePopup.hide() get_tree().paused = false Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + + +func load_next_level(): + levels[current_level_id].hide() + current_level_id = current_level_id + 1 + + # save current strokes and reset + strokes_per_level[current_level_id] = current_strokes + current_strokes = 0 + + if current_level_id >= NUM_LEVELS: + # TODO load main menu + return + + # load next level + levels[current_level_id].show() + + $Scoreboard.update_values(strokes_per_level, PAR) + $Scoreboard.show() + + # TODO teleport player back + + +func add_stroke(): + current_strokes += 1 + + +func revoke_stroke(): + current_strokes -= 1 -- cgit From 612e037bc85b815865c6019eb9be87d731e14d30 Mon Sep 17 00:00:00 2001 From: IcECreAm777 <31211782+IcECreAm777@users.noreply.github.com> Date: Sun, 17 Jul 2022 01:08:48 +0200 Subject: scoreboard can be accessed when pressing tab --- godot/scenes/Game.gd | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'godot/scenes/Game.gd') diff --git a/godot/scenes/Game.gd b/godot/scenes/Game.gd index 29a5537..56acb04 100644 --- a/godot/scenes/Game.gd +++ b/godot/scenes/Game.gd @@ -66,3 +66,12 @@ func add_stroke(): func revoke_stroke(): current_strokes -= 1 + + +func open_scoreboard(): + $Scoreboard.update_values(strokes_per_level, PAR) + $Scoreboard.show() + + +func close_scoreboard(): + $Scoreboard.hide() -- cgit From 8b932533e6d25a80f185bae299351426a4ca157e Mon Sep 17 00:00:00 2001 From: IcECreAm777 <31211782+IcECreAm777@users.noreply.github.com> Date: Sun, 17 Jul 2022 02:44:50 +0200 Subject: post game behaviour --- godot/scenes/Game.gd | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) (limited to 'godot/scenes/Game.gd') diff --git a/godot/scenes/Game.gd b/godot/scenes/Game.gd index 56acb04..f24219e 100644 --- a/godot/scenes/Game.gd +++ b/godot/scenes/Game.gd @@ -6,6 +6,7 @@ const PAR = [1,2,3,4,5,6,7,8,9] # level control var current_level_id = 0 var levels = [] +var post_game = false # stroke control var current_strokes = 0 @@ -39,25 +40,14 @@ func _on_ResumeButton_pressed(): Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) -func load_next_level(): - levels[current_level_id].hide() - current_level_id = current_level_id + 1 - +func end_level(): # save current strokes and reset strokes_per_level[current_level_id] = current_strokes current_strokes = 0 - if current_level_id >= NUM_LEVELS: - # TODO load main menu - return - - # load next level - levels[current_level_id].show() + post_game = true - $Scoreboard.update_values(strokes_per_level, PAR) - $Scoreboard.show() - - # TODO teleport player back + open_scoreboard() func add_stroke(): @@ -75,3 +65,23 @@ func open_scoreboard(): func close_scoreboard(): $Scoreboard.hide() + + +func is_post_game(): + return post_game + + +func next_level(): + post_game = false + + levels[current_level_id].hide() + current_level_id = current_level_id + 1 + + if current_level_id >= NUM_LEVELS: + # TODO load main menu + return + + # load next level + levels[current_level_id].show() + + close_scoreboard() -- cgit