From 419ee45597ee99850d22a1f24d9984d0344b0d15 Mon Sep 17 00:00:00 2001 From: Clevertop Date: Sun, 11 Aug 2024 21:29:44 +1000 Subject: [PATCH] started work on door and other various --- README.md | 5 ++++- Scripts/ChronoManager.gd | 11 +++++++++-- Scripts/Player.gd | 1 + Scripts/gui.gd | 10 ++++++++++ gui.tscn | 17 ++++++++++++++++- project.godot | 5 +++++ 6 files changed, 45 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 41aeb3f..cf49551 100644 --- a/README.md +++ b/README.md @@ -15,13 +15,15 @@ Puzzle game made by Tom for the Playmakers August Jam 2024 - [ ] level funciton - [x] Losing the game - [ ] winning the game and moving to next level + - [x] start of level screen - [x] command functions -- [ ] test camera controls for framerate independance +- [x] test camera controls for framerate independance - [ ] Menu - [ ] Level select - [ ] Credits page - [ ] itch.io page - [ ] kill blocks - resets level if player touches them +- [ ] door, starting level button ## COMMANDS @@ -34,3 +36,4 @@ Puzzle game made by Tom for the Playmakers August Jam 2024 ## BUGS - [x] cant place command block in pedestals which ahs already had one - [x] cammoand blocks can be lost by falling out of world +- [ ] movement(+camera?) is framerate dependant diff --git a/Scripts/ChronoManager.gd b/Scripts/ChronoManager.gd index ae0f247..9565267 100644 --- a/Scripts/ChronoManager.gd +++ b/Scripts/ChronoManager.gd @@ -7,6 +7,7 @@ signal tick(time : int) @export_group("Variables") @export var level_tick : float = 1 # how often to run a command @export var level_time : float = 10 # the amoutn of time allowed for the level +@export var level_name : String = "Level X\nTest Room" #reset these var tick_timer : float = 0 @@ -35,7 +36,7 @@ func _ready(): pedestals.append(temp) for i in pedestals.size(): pedestals[i].mesh.mesh = pedestals[i].mesh.mesh.duplicate() - pass # Replace with function body. + gui.show_level_title(level_name) # Called every frame. 'delta' is the elapsed time since the previous frame. @@ -80,6 +81,8 @@ func _process(delta): gui.show_lose_screen("", fail_timer) world_env.environment.background_color = Color.DIM_GRAY fail_timer -= delta + if(Input.is_action_just_pressed("reset") and fail_timer < 1.95): + fail_timer = 0 if fail_timer < 0: fail_timer = 2 reset_room() @@ -127,7 +130,7 @@ func reset_room(): room_started = false current_tick = 0 failed = false - fail_timer = 3 + fail_timer = 2 #reset pedestals for i in pedestals.size(): @@ -137,6 +140,10 @@ func reset_room(): # replace door # put player back in start room # reset timers + + player.clear_effects() + gui.show_level_title(level_name) + pass func finish_room(): diff --git a/Scripts/Player.gd b/Scripts/Player.gd index 81bcfec..d612979 100644 --- a/Scripts/Player.gd +++ b/Scripts/Player.gd @@ -99,6 +99,7 @@ func _physics_process(delta): dash_time -= delta var dash_direction = camera.global_position.direction_to(dash_node.global_position) dash_direction.y = 0 + dash_direction = dash_direction.normalized() velocity = dash_direction * SPEED*350 * delta elif dashing: dashing = false diff --git a/Scripts/gui.gd b/Scripts/gui.gd index da02880..363cb8b 100644 --- a/Scripts/gui.gd +++ b/Scripts/gui.gd @@ -4,6 +4,10 @@ extends Control @export var lose_panel : PanelContainer @export var lose_label : Label @export var reset_label : Label +@export var start_level : PanelContainer +@export var level_title : Label + +var title_fade : float = 2.5 # Called when the node enters the scene tree for the first time. func _ready(): @@ -13,6 +17,8 @@ func _ready(): # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): + title_fade -= delta + start_level.modulate.a = clamp(title_fade,0,1) pass func show_lose_screen(lose_text : String, reset_timer : float): @@ -24,3 +30,7 @@ func show_lose_screen(lose_text : String, reset_timer : float): func hide_lose_screen(): lose_panel.visible = false pass + +func show_level_title(title : String): + level_title.text = title + title_fade = 2 diff --git a/gui.tscn b/gui.tscn index b12e54a..9aa462d 100644 --- a/gui.tscn +++ b/gui.tscn @@ -13,7 +13,7 @@ font_size = 60 font_size = 30 font_color = Color(0.662452, 0.662452, 0.662452, 1) -[node name="Gui" type="Control" node_paths=PackedStringArray("lose_panel", "lose_label", "reset_label")] +[node name="Gui" type="Control" node_paths=PackedStringArray("lose_panel", "lose_label", "reset_label", "start_level", "level_title")] layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -24,6 +24,8 @@ script = ExtResource("1_7s0l7") lose_panel = NodePath("MarginContainer/PanelContainer") lose_label = NodePath("MarginContainer/PanelContainer/VBoxContainer/LoseText") reset_label = NodePath("MarginContainer/PanelContainer/VBoxContainer/LoseTimer") +start_level = NodePath("MarginContainer/StartPanel") +level_title = NodePath("MarginContainer/StartPanel/VBoxContainer/LevelTitle") [node name="Label" type="Label" parent="."] visible = false @@ -60,6 +62,19 @@ theme_override_constants/margin_top = 150 theme_override_constants/margin_right = 200 theme_override_constants/margin_bottom = 150 +[node name="StartPanel" type="PanelContainer" parent="MarginContainer"] +layout_mode = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/StartPanel"] +layout_mode = 2 +alignment = 1 + +[node name="LevelTitle" type="Label" parent="MarginContainer/StartPanel/VBoxContainer"] +layout_mode = 2 +text = "Level Failed" +label_settings = SubResource("LabelSettings_v7sqr") +horizontal_alignment = 1 + [node name="PanelContainer" type="PanelContainer" parent="MarginContainer"] layout_mode = 2 diff --git a/project.godot b/project.godot index 6385204..de2aab6 100644 --- a/project.godot +++ b/project.godot @@ -15,6 +15,11 @@ run/main_scene="res://Levels/StartingRoom.tscn" config/features=PackedStringArray("4.2", "Forward Plus") config/icon="res://icon.svg" +[editor] + +movie_writer/movie_file="/home/clevertop/Videos/video.avi" +movie_writer/fps=30 + [input] mov_left={