small racing game im working on
remove railings & support in favor of walls [skip ci] [if you cant see it, it isnt there]
bendn 2023-03-09
parent 80a0d8d · commit 44ad23a
-rw-r--r--assets/mats/rail.tres6
-rw-r--r--assets/mats/wall.tres (renamed from assets/mats/support.tres)4
-rw-r--r--assets/textures/wall.png (renamed from assets/textures/support.png)bin87 -> 87 bytes
-rw-r--r--assets/textures/wall.png.import (renamed from assets/textures/support.png.import)6
-rw-r--r--classes/track.gd4
-rw-r--r--scenes/track-base.gd60
-rw-r--r--scenes/track.tscn38
-rw-r--r--start.tscn2
-rw-r--r--tracks/multilap_test.tres6
9 files changed, 45 insertions, 81 deletions
diff --git a/assets/mats/rail.tres b/assets/mats/rail.tres
deleted file mode 100644
index 806a84e..0000000
--- a/assets/mats/rail.tres
+++ /dev/null
@@ -1,6 +0,0 @@
-[gd_resource type="StandardMaterial3D" format=3 uid="uid://dtpgjplswm6lr"]
-
-[resource]
-albedo_color = Color(0.6, 0.6, 0.6, 1)
-metallic = 0.83
-roughness = 0.22
diff --git a/assets/mats/support.tres b/assets/mats/wall.tres
index 7b2c681..5074300 100644
--- a/assets/mats/support.tres
+++ b/assets/mats/wall.tres
@@ -1,6 +1,6 @@
-[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bk4sxd2prmmom"]
+[gd_resource type="StandardMaterial3D" load_steps=2 format=3]
-[ext_resource type="Texture2D" uid="uid://b1re5kwpgdg07" path="res://assets/textures/support.png" id="1_0m2od"]
+[ext_resource type="Texture2D" uid="uid://b1re5kwpgdg07" path="res://assets/textures/wall.png" id="1_0m2od"]
[resource]
albedo_texture = ExtResource("1_0m2od")
diff --git a/assets/textures/support.png b/assets/textures/wall.png
index f1681d2..f1681d2 100644
--- a/assets/textures/support.png
+++ b/assets/textures/wall.png
Binary files differ
diff --git a/assets/textures/support.png.import b/assets/textures/wall.png.import
index 230e829..a931701 100644
--- a/assets/textures/support.png.import
+++ b/assets/textures/wall.png.import
@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://b1re5kwpgdg07"
-path="res://.godot/imported/support.png-302cf88a429f8c9d60f7b2b4f46840dd.ctex"
+path="res://.godot/imported/wall.png-35b80c25b8f7299ed1631f28676b0e6a.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://assets/textures/support.png"
-dest_files=["res://.godot/imported/support.png-302cf88a429f8c9d60f7b2b4f46840dd.ctex"]
+source_file="res://assets/textures/wall.png"
+dest_files=["res://.godot/imported/wall.png-35b80c25b8f7299ed1631f28676b0e6a.ctex"]
[params]
diff --git a/classes/track.gd b/classes/track.gd
index 4e53f3d..2e39193 100644
--- a/classes/track.gd
+++ b/classes/track.gd
@@ -3,8 +3,6 @@ class_name TrackResource
@export_group("Road")
## Width of road
@export var track_width := 40.0
-## Distance between rails and road
-@export var rail_distance := 3.0
## Support base width
@export var lower_support_width := 25.0
## Height of supports
@@ -16,6 +14,8 @@ class_name TrackResource
@export var left_barrier := true
## Right barrier? (does not change collisions). see also [member left_barrier]
@export var right_barrier := true
+## Barrier width
+@export var barrier_width := 4.0
@export_group("Sun position")
## Sun x rotation
@export_range(-360, 360) var sun_x := -90
diff --git a/scenes/track-base.gd b/scenes/track-base.gd
index 228342b..4fab822 100644
--- a/scenes/track-base.gd
+++ b/scenes/track-base.gd
@@ -17,9 +17,8 @@ class_name TrackLoader
call_deferred("_update")
@onready var road := $Road as CSGPolygon3D
-@onready var support := $Support as CSGPolygon3D
-@onready var rail_l := $"Rail-L" as CSGPolygon3D
-@onready var rail_r := $"Rail-R" as CSGPolygon3D
+@onready var rail_l := $WallL as CSGPolygon3D
+@onready var rail_r := $WallR as CSGPolygon3D
@onready var collision := $CollisionShape as CSGPolygon3D
@onready var sun := $Sun as DirectionalLight3D
@onready var ground := $Ground as StaticBody3D
@@ -47,53 +46,35 @@ func _update():
# update our track
var thw := track.track_width * 0.5 # track half width
- road.polygon = PackedVector2Array([vec(-thw), vec(-thw, -0.1), vec(thw, -0.1), vec(thw)])
- support.polygon = PackedVector2Array([
- vec(-thw - 2.0, -1),
- vec( thw + 2.0, -1),
- vec( track.lower_support_width, -track.support_height),
- vec(-track.lower_support_width, -track.support_height)
- ])
+ road.polygon = PackedVector2Array([vec(-thw), vec(-thw), vec(thw), vec(thw)])
# update our rails
- var rp := thw + track.rail_distance # rail position
+ var outer := thw + track.barrier_width
rail_l.polygon = PackedVector2Array([
- vec(rp, 0.5),
- vec(rp - 0.05, 0.47),
- vec(rp - 0.05, 0.43),
- vec(rp, 0.4),
- vec(rp, 0.55),
- vec(rp - 0.05, 0.32),
- vec(rp - 0.05, 0.28),
- vec(rp, 0.25),
- vec(rp + 0.05, 0.25),
- vec(rp + 0.05, 0.5)
+ vec(outer, 2),
+ vec(thw - .1, 2),
+ vec(thw - .1),
+ vec(outer)
])
rail_l.visible = track.left_barrier
rail_r.polygon = PackedVector2Array([
- vec(-rp, 0.5),
- vec(-rp + 0.05, 0.47),
- vec(-rp + 0.05, 0.43),
- vec(-rp, 0.4),
- vec(-rp, 0.55),
- vec(-rp + 0.05, 0.32),
- vec(-rp + 0.05, 0.28),
- vec(-rp, 0.25),
- vec(-rp - 0.05, 0.25),
- vec(-rp - 0.05, .5)
+ vec(-outer, 2),
+ vec(-thw + .1, 2),
+ vec(-thw + .1),
+ vec(-outer)
])
rail_r.visible = track.right_barrier
# update our collision
collision.polygon = PackedVector2Array([
- vec(-rp, 0.0),
- vec(rp, 0.0),
- vec(rp, 5.0),
- vec(rp + 3.0, 5.0),
- vec(rp + 3.0, -1.0),
- vec(-rp - 3.0, -1.0),
- vec(-rp - 3.0, 5.0),
- vec(-rp, 5.0),
+ vec(-thw),
+ vec(thw),
+ vec(thw, 5.0),
+ vec(outer, 5.0),
+ vec(outer, -1.0),
+ vec(-outer, -1.0),
+ vec(-outer, 5.0),
+ vec(-thw, 5.0),
])
# objects
for child in get_children():
@@ -119,7 +100,6 @@ func _update():
rail_r.path_joined = track.is_loop
collision.path_joined = track.is_loop
road.path_joined = track.is_loop
- support.path_joined = track.is_loop
# offset
ground.global_position = track.offset
diff --git a/scenes/track.tscn b/scenes/track.tscn
index ae9dc86..6cc21aa 100644
--- a/scenes/track.tscn
+++ b/scenes/track.tscn
@@ -1,20 +1,23 @@
-[gd_scene load_steps=8 format=3 uid="uid://clw61td2wh84w"]
+[gd_scene load_steps=9 format=3 uid="uid://ep3a5q3nkb7m"]
[ext_resource type="Script" path="res://scenes/track-base.gd" id="1_ke7nx"]
+[ext_resource type="Curve3D" uid="uid://u2f56xx8h2re" path="res://tracks/multilap_test_curve.tres" id="1_ktkvl"]
[ext_resource type="Material" uid="uid://be8pta62kxd2j" path="res://assets/mats/road.tres" id="2_2nntu"]
-[ext_resource type="Material" uid="uid://dtpgjplswm6lr" path="res://assets/mats/rail.tres" id="2_3pcob"]
-[ext_resource type="Material" uid="uid://bk4sxd2prmmom" path="res://assets/mats/support.tres" id="3_4570s"]
+[ext_resource type="Resource" uid="uid://dwojilpcrv8me" path="res://tracks/multilap_test.tres" id="3_uxk1w"]
+[ext_resource type="Material" path="res://assets/mats/wall.tres" id="5_8gm6o"]
[ext_resource type="PackedScene" uid="uid://cd4a5y0hi58ks" path="res://scenes/floor.tscn" id="7_fidh3"]
[ext_resource type="Environment" uid="uid://biwshm46yl62v" path="res://default_env.tres" id="8_2nyv3"]
[ext_resource type="CameraAttributesPractical" uid="uid://nhsovwj5hjip" path="res://cam.tres" id="9_6ooo5"]
[node name="TrackLoader" type="Path3D"]
+curve = ExtResource("1_ktkvl")
script = ExtResource("1_ke7nx")
+track = ExtResource("3_uxk1w")
metadata/_edit_group_ = true
[node name="Road" type="CSGPolygon3D" parent="."]
calculate_tangents = false
-polygon = PackedVector2Array(-20, 0, -20, -0.1, 20, -0.1, 20, 0)
+polygon = PackedVector2Array(-12.5, 0, -12.5, 0, 12.5, 0, 12.5, 0)
mode = 2
path_node = NodePath("..")
path_interval_type = 0
@@ -27,9 +30,9 @@ path_u_distance = 0.0
path_joined = true
material = ExtResource("2_2nntu")
-[node name="Rail-L" type="CSGPolygon3D" parent="."]
+[node name="WallL" type="CSGPolygon3D" parent="."]
calculate_tangents = false
-polygon = PackedVector2Array(23, 0.5, 22.95, 0.47, 22.95, 0.43, 23, 0.4, 23, 0.55, 22.95, 0.32, 22.95, 0.28, 23, 0.25, 23.05, 0.25, 23.05, 0.5)
+polygon = PackedVector2Array(-14.5, 2, -12.4, 2, -12.4, 0, -14.5, 0)
mode = 2
path_node = NodePath("..")
path_interval_type = 0
@@ -40,11 +43,11 @@ path_local = false
path_continuous_u = true
path_u_distance = 1.0
path_joined = true
-material = ExtResource("2_3pcob")
+material = ExtResource("5_8gm6o")
-[node name="Rail-R" type="CSGPolygon3D" parent="."]
+[node name="WallR" type="CSGPolygon3D" parent="."]
calculate_tangents = false
-polygon = PackedVector2Array(-23, 0.5, -22.95, 0.47, -22.95, 0.43, -23, 0.4, -23, 0.55, -22.95, 0.32, -22.95, 0.28, -23, 0.25, -23.05, 0.25, -23.05, 0.5)
+polygon = PackedVector2Array(14.5, 2, 12.4, 2, 12.4, 0, 14.5, 0)
mode = 2
path_node = NodePath("..")
path_interval_type = 0
@@ -55,20 +58,7 @@ path_local = false
path_continuous_u = true
path_u_distance = 1.0
path_joined = true
-
-[node name="Support" type="CSGPolygon3D" parent="."]
-polygon = PackedVector2Array(-22, -1, 22, -1, 25, -2, -25, -2)
-mode = 2
-path_node = NodePath("..")
-path_interval_type = 0
-path_interval = 1.0
-path_simplify_angle = 5.0
-path_rotation = 2
-path_local = false
-path_continuous_u = true
-path_u_distance = 1.0
-path_joined = true
-material = ExtResource("3_4570s")
+material = ExtResource("5_8gm6o")
[node name="Sun" type="DirectionalLight3D" parent="."]
transform = Transform3D(1, 4.49013e-09, 0, -2.8862e-09, 0.642788, 0.766044, 3.43964e-09, -0.766044, 0.642788, 0, 0, 0)
@@ -89,7 +79,7 @@ visible = false
calculate_tangents = false
use_collision = true
collision_mask = 0
-polygon = PackedVector2Array(-23, 0, 23, 0, 23, 5, 26, 5, 26, -1, -26, -1, -26, 5, -23, 5)
+polygon = PackedVector2Array(-12.5, 0, 12.5, 0, 12.5, 5, 14.5, 5, 14.5, -1, -14.5, -1, -14.5, 5, -12.5, 5)
mode = 2
path_node = NodePath("..")
path_interval_type = 0
diff --git a/start.tscn b/start.tscn
index 857bdcb..f0cc06b 100644
--- a/start.tscn
+++ b/start.tscn
@@ -2,7 +2,7 @@
[ext_resource type="Theme" uid="uid://cru1d7n2ftrfm" path="res://ui/theme.tres" id="1_gm0ws"]
[ext_resource type="Script" path="res://ui/tracks.gd" id="2_po2ce"]
-[ext_resource type="Resource" path="res://tracks/multilap_test.tres" id="3_0yjp1"]
+[ext_resource type="Resource" uid="uid://dwojilpcrv8me" path="res://tracks/multilap_test.tres" id="3_0yjp1"]
[ext_resource type="Resource" path="res://tracks/test.tres" id="4_3xqvr"]
[ext_resource type="PackedScene" uid="uid://dhiei0g5tr74s" path="res://scenes/race_high.tscn" id="5_m5kci"]
[ext_resource type="Resource" path="res://tracks/the fallen tramps.tres" id="5_qwie6"]
diff --git a/tracks/multilap_test.tres b/tracks/multilap_test.tres
index 1f66712..de08868 100644
--- a/tracks/multilap_test.tres
+++ b/tracks/multilap_test.tres
@@ -1,4 +1,4 @@
-[gd_resource type="Resource" script_class="TrackResource" load_steps=6 format=3]
+[gd_resource type="Resource" script_class="TrackResource" load_steps=6 format=3 uid="uid://dwojilpcrv8me"]
[ext_resource type="Script" path="res://classes/track.gd" id="1_c5h3o"]
[ext_resource type="PackedScene" uid="uid://d4a3e1w62m3ck" path="res://scenes/ring_checkpoint.tscn" id="1_ehf5p"]
@@ -9,13 +9,13 @@
[resource]
resource_local_to_scene = true
script = ExtResource("1_c5h3o")
-track_width = 40.0
-rail_distance = 3.0
+track_width = 25.0
lower_support_width = 25.0
support_height = 2.0
track = ExtResource("2_33qpi")
left_barrier = true
right_barrier = true
+barrier_width = 2.0
sun_x = -50
sun_y = 0
overview_height = 250.0