From fd964b127430b7ca517d9e361a00905c5063f203 Mon Sep 17 00:00:00 2001 From: mehbark Date: Mon, 5 May 2025 14:37:32 -0400 Subject: [PATCH] better lighting: shadows move with time --- main.gd | 15 +++++++++------ main.tscn | 41 ++++++++++++++++++++++++++++++----------- 2 files changed, 39 insertions(+), 17 deletions(-) diff --git a/main.gd b/main.gd index 1f055a9..a896575 100644 --- a/main.gd +++ b/main.gd @@ -11,12 +11,13 @@ var hist := UndoRedo.new() var board: Board var player: Piece var level_num := -1 +# TODO: instead of dumb numbered levels, GIVE THEM GOOD NAMES AND MANUALLY ORDER THEM! var levels: Array[PackedScene] = [ + preload("res://level/level_00.tscn"), + preload("res://level/level_01.tscn"), + preload("res://level/level_02.tscn"), + preload("res://level/level_03.tscn"), preload("res://level/level_04.tscn"), - #preload("res://level/level_00.tscn"), - #preload("res://level/level_01.tscn"), - #preload("res://level/level_02.tscn"), - #preload("res://level/level_03.tscn"), ] var time := 0 var advancing := false @@ -34,6 +35,7 @@ func _process(delta: float) -> void: $RedoButton.disabled = not hist.has_redo() $RestartButton.disabled = not hist.has_undo() $Clock.text = "T = %d" % time + $Sun.rotation_degrees.y = -10*time if $TopLeft.is_on_screen() and $BottomRight.is_on_screen(): return camera.position.y += 10*delta @@ -91,12 +93,15 @@ func step(move: Vector2i): return if won(): advance_level() + return # the ability to wait removes some parity stuff # but that stuff kinda sucks if move == Vector2i.ZERO: hist.create_action("wait") board_step() hist.commit_action() + if won(): + advance_level() return var pos := player.lpos @@ -116,8 +121,6 @@ func step(move: Vector2i): else: sound.stream = sounds_hit sound.play() - if won(): - advance_level() func won() -> bool: for piece in board.pieces(): diff --git a/main.tscn b/main.tscn index 8ce4793..c9ee173 100644 --- a/main.tscn +++ b/main.tscn @@ -1,31 +1,46 @@ -[gd_scene load_steps=8 format=3 uid="uid://lrk2whqxl0w0"] +[gd_scene load_steps=10 format=3 uid="uid://lrk2whqxl0w0"] [ext_resource type="Script" uid="uid://c707s0tgd88pg" path="res://main.gd" id="1_ig7tw"] [ext_resource type="Texture2D" uid="uid://crahyipmcudoy" path="res://ui/undo.png" id="3_lquwl"] [ext_resource type="Texture2D" uid="uid://dyj5el5iro1cb" path="res://ui/redo.png" id="4_7mycd"] [ext_resource type="Texture2D" uid="uid://cbb1q0usxd6ex" path="res://ui/restart.png" id="5_272bh"] -[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_ig7tw"] -ground_bottom_color = Color(0.270778, 0.538085, 0.397052, 1) +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_1bvp3"] +sky_top_color = Color(0.467272, 0.753409, 0.87431, 1) +sky_horizon_color = Color(0.662243, 0.671743, 0.686743, 1) +ground_bottom_color = Color(0.200947, 0.396858, 0.21, 1) +ground_horizon_color = Color(0.538705, 0.699427, 0.772274, 1) -[sub_resource type="Sky" id="Sky_0xm2m"] -sky_material = SubResource("ProceduralSkyMaterial_ig7tw") +[sub_resource type="Sky" id="Sky_lquwl"] +sky_material = SubResource("ProceduralSkyMaterial_1bvp3") -[sub_resource type="Environment" id="Environment_ig7tw"] +[sub_resource type="Environment" id="Environment_7mycd"] background_mode = 2 -sky = SubResource("Sky_0xm2m") -ambient_light_color = Color(1, 1, 1, 1) +sky = SubResource("Sky_lquwl") +tonemap_mode = 2 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1bvp3"] +albedo_color = Color(0.250136, 0.493198, 0.284902, 1) + +[sub_resource type="PlaneMesh" id="PlaneMesh_1bvp3"] +material = SubResource("StandardMaterial3D_1bvp3") +size = Vector2(200, 200) [node name="Main" type="Node3D"] script = ExtResource("1_ig7tw") +[node name="Sun" type="DirectionalLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.5, 0.866025, 0, -0.866025, 0.5, 0, 0, 0) +light_energy = 0.1 +shadow_enabled = true + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_7mycd") + [node name="Camera" type="Camera3D" parent="."] transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 1.5, 0) fov = 30.0 -[node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = SubResource("Environment_ig7tw") - [node name="Sound" type="AudioStreamPlayer" parent="."] [node name="TopLeft" type="VisibleOnScreenNotifier3D" parent="."] @@ -75,6 +90,10 @@ theme_override_font_sizes/normal_font_size = 32 text = "T = 0" fit_content = true +[node name="Ground" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.1, 0) +mesh = SubResource("PlaneMesh_1bvp3") + [connection signal="pressed" from="UndoButton" to="." method="undo"] [connection signal="pressed" from="RedoButton" to="." method="redo"] [connection signal="pressed" from="RestartButton" to="." method="restart"]