small racing game im working on
-rw-r--r--cam.gd1
-rw-r--r--classes/car.gd4
-rw-r--r--scenes/track-base.gd2
-rw-r--r--tracks/the fallen tramps_curve.tres2
-rw-r--r--ui/intro_cam.gd2
5 files changed, 9 insertions, 2 deletions
diff --git a/cam.gd b/cam.gd
index 13ae0e5..3c60abc 100644
--- a/cam.gd
+++ b/cam.gd
@@ -12,6 +12,7 @@ func _ready():
look_at(follow_this.global_position)
last_lookat = follow_this.global_position
far = 2000
+ near = .2
func target() -> Vector3:
var delta_v := global_position - follow_this.global_position
diff --git a/classes/car.gd b/classes/car.gd
index cd9a66a..8d3a23c 100644
--- a/classes/car.gd
+++ b/classes/car.gd
@@ -33,6 +33,9 @@ func ratio() -> float:
-1: return reverse_ratio
_: return gear_ratios[current_gear - 1]
+func downforce(force: float):
+ apply_force(basis * Vector3(0,-force,0), Vector3(0,1.4,2.5))
+
func is_on_ground() -> bool:
return wheels.all(func(whl: VehicleWheel3D): return whl.is_in_contact() != null)
@@ -98,6 +101,7 @@ func limit(delta: float) -> void:
angular_damp = max(5 * (angular_velocity.length_squared() - 45), 0) if angular_velocity.length_squared() > 45 else 0.0
func _physics_process(delta: float):
+ downforce(5)
var power_factor := power_curve.sample_baked(clampf(rpm() / max_engine_rpm, 0.0, 1.0))
if current_gear == -1:
engine_force = throttle * power_factor * reverse_ratio * final_drive_ratio * MAX_ENGINE_FORCE * clutch_position
diff --git a/scenes/track-base.gd b/scenes/track-base.gd
index 96f9e40..228342b 100644
--- a/scenes/track-base.gd
+++ b/scenes/track-base.gd
@@ -51,7 +51,7 @@ func _update():
support.polygon = PackedVector2Array([
vec(-thw - 2.0, -1),
vec( thw + 2.0, -1),
- vec( track.lower_support_width + 0.1, -track.support_height),
+ vec( track.lower_support_width, -track.support_height),
vec(-track.lower_support_width, -track.support_height)
])
diff --git a/tracks/the fallen tramps_curve.tres b/tracks/the fallen tramps_curve.tres
index a58956a..19d7255 100644
--- a/tracks/the fallen tramps_curve.tres
+++ b/tracks/the fallen tramps_curve.tres
@@ -2,7 +2,7 @@
[resource]
_data = {
-"points": PackedVector3Array(37.391, -10.7008, -37.7107, -37.391, 10.7008, 37.7107, 330.708, 88.7112, -74.4047, 84.4839, 47.4017, -49.9644, -82.8519, -46.486, 48.9991, 111.976, 8.1174, 38.3802, 126.492, -39.8907, 104.311, -126.492, 39.8907, -104.311, -131.577, 4, 139.526, 1.75706, -40.5922, 55.4782, -1.75706, 40.5922, -55.4782, -70.4745, -12.0589, -102.896, 9.32288, 2.08416, 54.7418, 0, 0, 0, -45.7354, -31.2662, -198.668),
+"points": PackedVector3Array(71.7111, -7.30142, 40.9033, -71.7111, 7.30142, -40.9033, 364.527, 34.2145, -58.2419, 80.0429, -4.87809, -46.8782, -80.0429, 4.87809, 46.8782, 111.976, 8.1174, 38.3802, 126.492, -39.8907, 104.311, -126.492, 39.8907, -104.311, -131.577, 4, 139.526, 1.75706, -40.5922, 55.4782, -1.75706, 40.5922, -55.4782, -70.4745, -12.0589, -102.896, 9.32288, 2.08416, 54.7418, 0, 0, 0, -45.7354, -31.2662, -198.668),
"tilts": PackedFloat32Array(1.5708, 0, 0, 0, 0)
}
point_count = 5
diff --git a/ui/intro_cam.gd b/ui/intro_cam.gd
index 2e8a8aa..c8371ac 100644
--- a/ui/intro_cam.gd
+++ b/ui/intro_cam.gd
@@ -7,6 +7,8 @@ var track: TrackResource
var main_cam: Camera3D
func _init(_track: TrackResource, _main_cam: Camera3D):
+ far = 4000
+ near = .2
track = _track
main_cam = _main_cam