]> Untitled Git - lightcycles.git/commitdiff
Added basic walls with no collision
authorClifton Palmer <clifton.james.palmer@protonmail.com>
Sun, 15 Dec 2024 11:18:10 +0000 (13:18 +0200)
committerClifton Palmer <clifton.james.palmer@protonmail.com>
Sun, 15 Dec 2024 11:18:10 +0000 (13:18 +0200)
map/world.gd
map/world.tscn
player/player.gd
player/player.tscn
player/player_wall.gd [new file with mode: 0644]
player/player_wall.tscn [new file with mode: 0644]
project.godot

index d1979f7deda8b2045124e69b03e2234af5adb1f5..3b0e36b113477884db48731dabfb5f50f314a77c 100644 (file)
@@ -1,6 +1,28 @@
 extends Node3D
 
+@onready var _walls = $map
+
+var _player_wall_tscn = preload("res://player/player_wall.tscn")
+var _wall_start: Vector3 = Vector3.ZERO
 
 func _input(event: InputEvent) -> void:
        if event.is_action_pressed("ui_cancel"):
                get_tree().quit()
+
+
+func _on_player_player_ready(player: Player) -> void:
+       var origin: Vector3 = player.get_tree().get_first_node_in_group("wall_origin").global_position
+       _wall_start = origin
+
+
+func _on_player_player_turn(player: Player) -> void:
+       var origin: Vector3 = player.global_position
+       
+       var wall: PlayerWall = _player_wall_tscn.instantiate()
+       add_child(wall)
+       wall.global_position = _wall_start
+       wall.global_scale(Vector3(1, 1, (origin - _wall_start).length()))
+       wall.global_rotation = player.global_rotation
+       print("Made a wall: " + str(wall))
+       
+       _wall_start = origin
index a3f6d32a2f002c8fd7b1cef42b6a75c3638036b4..ebee4d95daf2d5527f2437ef95e329efb1ec00ac 100644 (file)
@@ -37,5 +37,7 @@ shape = SubResource("ConcavePolygonShape3D_mhr6o")
 
 [node name="player" parent="." instance=ExtResource("1_3tqxd")]
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -16)
-speed = 5.0
-distance = 3.0
+distance = 5.0
+
+[connection signal="playerReady" from="player" to="." method="_on_player_player_ready"]
+[connection signal="playerTurn" from="player" to="." method="_on_player_player_turn"]
index 27754a40046ceaeddf22b67d60daedaaf4696b73..1c842d4b5c14153628d0b0a39e6506a17acc55ac 100644 (file)
@@ -1,5 +1,11 @@
+class_name Player
 extends CharacterBody3D
 
+
+signal playerReady
+signal playerTurn
+
+
 @export_category("Movement")
 @export var speed = 5.0
 
@@ -7,16 +13,22 @@ extends CharacterBody3D
 @export var distance = 3.0
 
 @onready var _springArm = $SpringArm3D
-@onready var _skin = %skin
 
 
+func _ready() -> void:
+       _springArm.spring_length = distance
+       playerReady.emit(self)
+
 
 func _input(event: InputEvent) -> void:
        if event.is_action_pressed("player_left"):
+               playerTurn.emit(self)
                global_rotate(Vector3.UP, PI/2)
        elif event.is_action_pressed("player_right"):
+               playerTurn.emit(self)
                global_rotate(Vector3.UP, -PI/2)
 
-func _physics_process(delta: float) -> void:
+
+func _physics_process(_delta: float) -> void:
        velocity = global_transform.basis.z * speed
        move_and_slide()
index e52446ec1c4f78a3d4cfba9ea108663406cfe608..3404340fbabf9b972c7f30e0cbd3ee3b9c0051a7 100644 (file)
@@ -7,6 +7,7 @@
 size = Vector3(0.25116, 0.472717, 0.987427)
 
 [node name="Player" type="CharacterBody3D"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.367284)
 script = ExtResource("1_kh0vu")
 
 [node name="skin" parent="." instance=ExtResource("1_m3abw")]
@@ -21,3 +22,6 @@ transform = Transform3D(-1, 0, -8.74228e-08, -2.26267e-08, 0.965926, 0.258819, 8
 spring_length = 5.0
 
 [node name="Camera3D" type="Camera3D" parent="SpringArm3D"]
+
+[node name="WallOrigin" type="Node3D" parent="." groups=["wall_origin"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.343644)
diff --git a/player/player_wall.gd b/player/player_wall.gd
new file mode 100644 (file)
index 0000000..e8dd447
--- /dev/null
@@ -0,0 +1,2 @@
+class_name PlayerWall
+extends Node3D
diff --git a/player/player_wall.tscn b/player/player_wall.tscn
new file mode 100644 (file)
index 0000000..ee9a0c7
--- /dev/null
@@ -0,0 +1,20 @@
+[gd_scene load_steps=4 format=3 uid="uid://6a20phajjwu8"]
+
+[ext_resource type="Script" path="res://player/player_wall.gd" id="1_rj8im"]
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_sk1tc"]
+albedo_color = Color(0.1152, 0.8192, 0.96, 1)
+emission_enabled = true
+emission = Color(0.354498, 0.45596, 0.814702, 1)
+emission_energy_multiplier = 1.44
+
+[sub_resource type="BoxMesh" id="BoxMesh_p4d0s"]
+material = SubResource("StandardMaterial3D_sk1tc")
+size = Vector3(1, 0.01, 1)
+
+[node name="PlayerWall" type="Node3D"]
+script = ExtResource("1_rj8im")
+
+[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
+transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0.5)
+mesh = SubResource("BoxMesh_p4d0s")
index c16c1f26dda867a00fbb7177fd6239eea3eb5388..22564c7d68c8d6d98a6051b97fff61a28fceea0d 100644 (file)
@@ -20,6 +20,10 @@ config/icon="res://icon.svg"
 window/size/viewport_width=2304
 window/size/viewport_height=1296
 
+[global_group]
+
+wall_origin=""
+
 [input]
 
 player_left={