Les voitures! Des carrosses à escence.

Et bien les voitures vois-tu, maintenant elles utilisent aussi
l'animation tree, le state machine of the future et les super autres
magiqueries.

Elles bougent grace à un Path2D qui est suivit par un PathFollow2D qui
leur sert de lapin. Elles suivent le lapin, sans cesse et sans cesse.
Elles sont sage.
This commit is contained in:
Thomas
2025-02-21 22:44:29 +01:00
parent 134759b1b5
commit ec29c50631
11 changed files with 700 additions and 261 deletions

View File

@@ -1,13 +1,13 @@
class_name NPCCar
extends PathFollow2D
@export var car : Car
@export var speed = 0.1
var voiture
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
voiture = (self.get_child(0) as Voiture)
voiture.updatePosition(position.x, position.y)
@export var distanceMax = 100
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
progress_ratio += delta * speed;
voiture.updatePosition(position.x, position.y)
if position.distance_to(car.position) < 200:
progress_ratio += delta * speed;
car.moveTo(position);

51
scenes/sta3CFA.tmp Normal file
View File

@@ -0,0 +1,51 @@
[gd_scene load_steps=7 format=3 uid="uid://b4ydi1vv8dvwr"]
[ext_resource type="PackedScene" uid="uid://d1oqt6sbjvopi" path="res://maps/world.tscn" id="1_6vs81"]
[ext_resource type="PackedScene" uid="uid://vclpg4e4ql54" path="res://caracters/player/player.tscn" id="2_5x6b5"]
[ext_resource type="PackedScene" uid="uid://cl201baro5y5" path="res://vehicules/npc_car.tscn" id="3_yuakw"]
[ext_resource type="PackedScene" uid="uid://bt1p311rn1h6q" path="res://vehicules/car.tscn" id="4_bqm78"]
[sub_resource type="Curve2D" id="Curve2D_shblg"]
_data = {
"points": PackedVector2Array(0, 0, 0, 0, -285, 193, -110.06, 94.1858, 110.06, -94.1858, 52, 134, -159.798, 75.137, 159.798, -75.137, 204, 13, -116.409, -28.5732, 116.409, 28.5732, 2206, -11, -93.6567, -28.0441, 93.6567, 28.0441, 2387, 165, -119.584, 76.7244, 119.584, -76.7244, 2750, 126, 108.472, 48.6803, -108.472, -48.6803, 2737, -309, 122.23, -57.1464, -122.23, 57.1464, 2340, -323, 76.1953, -36.5102, -76.1953, 36.5102, 2167, -129, 107.414, 77.2535, -107.414, -77.2535, 158, -148, 57.4153, 72.8272, -57.4153, -72.8272, 39, -293, 113.137, -95.6951, -113.137, 95.6951, -405, -291, -94.7149, -70.9039, 94.7149, 70.9039, -413, 128, 0, 0, 0, 0, -286, 193, 0, 0, 0, 0, -285, 193)
}
point_count = 15
[sub_resource type="Curve2D" id="Curve2D_nircx"]
_data = {
"points": PackedVector2Array(0, 0, 0, 0, 803, 1569, 0, 0, 0, 0, 910, 1573, 0, 0, 0, 0, 913, 1368, 0, 0, 0, 0, 1926, 1371, 0, 0, 0, 0, 1931, 342, 0, 0, 0, 0, 2082, 333, 0, 0, 0, 0, 2060, -140, 0, 0, 0, 0, 1718, -143, 0, 0, 0, 0, 1724, 20, 0, 0, 0, 0, 900, 30, 0, 0, 0, 0, 904, -1165, 0, 0, 0, 0, -890, -1162, 0, 0, 0, 0, -886, -119, 0, 0, 0, 0, -1062, -106, 0, 0, 0, 0, -1076, 268, 0, 0, 0, 0, -630, 271, 0, 0, 0, 0, -616, 161, 0, 0, 0, 0, 786, 152, 0, 0, 0, 0, 806, 1560)
}
point_count = 19
[node name="scene1" type="Node2D"]
[node name="monde" parent="." instance=ExtResource("1_6vs81")]
[node name="movibles" type="Node2D" parent="."]
[node name="Area2D" parent="movibles" instance=ExtResource("2_5x6b5")]
position = Vector2(87, 74)
[node name="voitures" type="Node" parent="movibles"]
[node name="Path2D" type="Path2D" parent="movibles/voitures"]
position = Vector2(-664, 181)
curve = SubResource("Curve2D_shblg")
[node name="voiture_pnj" parent="movibles/voitures/Path2D" node_paths=PackedStringArray("car") instance=ExtResource("3_yuakw")]
position = Vector2(-285, 193)
car = NodePath("../Car")
[node name="Car" parent="movibles/voitures/Path2D" instance=ExtResource("4_bqm78")]
position = Vector2(-287, 196)
[node name="Path2D2" type="Path2D" parent="movibles/voitures"]
curve = SubResource("Curve2D_nircx")
[node name="voiture_pnj" parent="movibles/voitures/Path2D2" node_paths=PackedStringArray("car") instance=ExtResource("3_yuakw")]
position = Vector2(803, 1569)
car = NodePath("../Car2")
speed = 0.05
[node name="Car2" parent="movibles/voitures/Path2D2" instance=ExtResource("4_bqm78")]
position = Vector2(796, 1559)

View File

@@ -1,20 +1,21 @@
[gd_scene load_steps=6 format=3 uid="uid://b4ydi1vv8dvwr"]
[gd_scene load_steps=7 format=3 uid="uid://b4ydi1vv8dvwr"]
[ext_resource type="PackedScene" uid="uid://d1oqt6sbjvopi" path="res://maps/world.tscn" id="1_6vs81"]
[ext_resource type="PackedScene" uid="uid://vclpg4e4ql54" path="res://caracters/player/player.tscn" id="2_5x6b5"]
[ext_resource type="PackedScene" uid="uid://cl201baro5y5" path="res://vehicules/npc_car.tscn" id="3_yuakw"]
[ext_resource type="PackedScene" uid="uid://bt1p311rn1h6q" path="res://vehicules/car.tscn" id="4_bqm78"]
[sub_resource type="Curve2D" id="Curve2D_shblg"]
_data = {
"points": PackedVector2Array(0, 0, 0, 0, -411, 81, 0, 0, 0, 0, 37, 81, 0, 0, 0, 0, 37, -34, 0, 0, 0, 0, 2392, -33, 0, 0, 0, 0, 2395, 125, 0, 0, 0, 0, 2750, 126, 0, 0, 0, 0, 2750, -313, 0, 0, 0, 0, 2391, -314, 0, 0, 0, 0, 2390, -149, 0, 0, 0, 0, 39, -144, 0, 0, 0, 0, 39, -293, 0, 0, 0, 0, -398, -289, 0, 0, 0, 0, -409, -310, 0, 0, 0, 0, -414, 78)
"points": PackedVector2Array(0, 0, 0, 0, -285, 193, -110.06, 94.1858, 110.06, -94.1858, 52, 134, -159.798, 75.137, 159.798, -75.137, 204, 13, -116.409, -28.5732, 116.409, 28.5732, 2206, -11, -93.6567, -28.0441, 93.6567, 28.0441, 2387, 165, -119.584, 76.7244, 119.584, -76.7244, 2750, 126, 108.472, 48.6803, -108.472, -48.6803, 2737, -309, 122.23, -57.1464, -122.23, 57.1464, 2340, -323, 76.1953, -36.5102, -76.1953, 36.5102, 2167, -129, 107.414, 77.2535, -107.414, -77.2535, 158, -148, 57.4153, 72.8272, -57.4153, -72.8272, 39, -293, 113.137, -95.6951, -113.137, 95.6951, -405, -291, -94.7149, -70.9039, 94.7149, 70.9039, -413, 128, 0, 0, 0, 0, -286, 193, 0, 0, 0, 0, -285, 193)
}
point_count = 14
point_count = 15
[sub_resource type="Curve2D" id="Curve2D_nircx"]
_data = {
"points": PackedVector2Array(0, 0, 0, 0, 803, 1569, 0, 0, 0, 0, 910, 1573, 0, 0, 0, 0, 913, 1368, 0, 0, 0, 0, 1926, 1371, 0, 0, 0, 0, 1931, 342, 0, 0, 0, 0, 2082, 333, 0, 0, 0, 0, 2060, -140, 0, 0, 0, 0, 1718, -143, 0, 0, 0, 0, 1724, 20, 0, 0, 0, 0, 900, 30, 0, 0, 0, 0, 904, -1165, 0, 0, 0, 0, -890, -1162, 0, 0, 0, 0, -886, -119, 0, 0, 0, 0, -1062, -106, 0, 0, 0, 0, -1079, 264, 0, 0, 0, 0, -630, 271, 0, 0, 0, 0, -616, 161, 0, 0, 0, 0, 786, 152, 0, 0, 0, 0, 806, 1560)
"points": PackedVector2Array(0, 0, 0, 0, 803, 1569, 0, 0, 0, 0, 910, 1573, 0, 0, 0, 0, 913, 1368, 0, 0, 0, 0, 1926, 1371, 0, 0, 0, 0, 1931, 342, 0, 0, 0, 0, 2082, 333, 0, 0, 0, 0, 2060, -140, 0, 0, 0, 0, 1718, -143, 0, 0, 0, 0, 1649, 73, 0, 0, 0, 0, 814, 68, 0, 0, 0, 0, 897, -123, 0, 0, 0, 0, 904, -1165, 0, 0, 0, 0, -890, -1162, 0, 0, 0, 0, -886, -119, 0, 0, 0, 0, -1062, -106, 0, 0, 0, 0, -1076, 268, 0, 0, 0, 0, -630, 271, 0, 0, 0, 0, -616, 161, 0, 0, 0, 0, 858, 167, 0, 0, 0, 0, 806, 1560)
}
point_count = 19
point_count = 20
[node name="scene1" type="Node2D"]
@@ -31,11 +32,24 @@ position = Vector2(87, 74)
position = Vector2(-664, 181)
curve = SubResource("Curve2D_shblg")
[node name="voiture_pnj" parent="movibles/voitures/Path2D" instance=ExtResource("3_yuakw")]
[node name="voiture_pnj" parent="movibles/voitures/Path2D" node_paths=PackedStringArray("car") instance=ExtResource("3_yuakw")]
position = Vector2(-285, 193)
car = NodePath("../Car")
speed = 0.2
distanceMax = 200
[node name="Car" parent="movibles/voitures/Path2D" instance=ExtResource("4_bqm78")]
position = Vector2(-287, 196)
speed = 500
[node name="Path2D2" type="Path2D" parent="movibles/voitures"]
curve = SubResource("Curve2D_nircx")
[node name="voiture_pnj" parent="movibles/voitures/Path2D2" instance=ExtResource("3_yuakw")]
[node name="voiture_pnj" parent="movibles/voitures/Path2D2" node_paths=PackedStringArray("car") instance=ExtResource("3_yuakw")]
position = Vector2(803, 1569)
speed = 0.05
car = NodePath("../Car")
distanceMax = 15
[node name="Car" parent="movibles/voitures/Path2D2" instance=ExtResource("4_bqm78")]
position = Vector2(803, 1558)
speed = 500