better lighting: shadows move with time

This commit is contained in:
mehbark 2025-05-05 14:37:32 -04:00
parent d6a045c43b
commit fd964b1274
2 changed files with 39 additions and 17 deletions

15
main.gd
View file

@ -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():

View file

@ -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"]