Skip to content

Commit a5b8cd1

Browse files
authored
Merge pull request #385 from aaronfranke/truck-town
Update and improve Truck Town for Godot 3.1.2
2 parents 0746c06 + 2afbeef commit a5b8cd1

File tree

10 files changed

+589
-3448
lines changed

10 files changed

+589
-3448
lines changed

3d/truck_town/car_base.tscn

Lines changed: 31 additions & 173 deletions
Large diffs are not rendered by default.

3d/truck_town/car_select.gd

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,34 @@
1-
21
extends Control
32

4-
# Member variables
53
var town = null
64

7-
8-
func _back():
9-
town.queue_free()
10-
show()
5+
func _process(_delta):
6+
if Input.is_action_just_pressed("back"):
7+
_on_Back_pressed()
118

129

1310
func _load_scene(car):
1411
var tt = load(car).instance()
1512
tt.set_name("car")
1613
town = load("res://town_scene.tscn").instance()
17-
town.get_node("instance_pos").add_child(tt)
18-
town.get_node("back").connect("pressed", self, "_back")
14+
town.get_node("InstancePos").add_child(tt)
15+
town.get_node("Back").connect("pressed", self, "_on_Back_pressed")
1916
get_parent().add_child(town)
2017
hide()
2118

2219

23-
func _on_van_1_pressed():
20+
func _on_Back_pressed():
21+
town.queue_free()
22+
show()
23+
24+
25+
func _on_MiniVan_pressed():
2426
_load_scene("res://car_base.tscn")
2527

2628

27-
func _on_van_2_pressed():
29+
func _on_TrailerTruck_pressed():
2830
_load_scene("res://trailer_truck.tscn")
2931

3032

31-
func _on_van_3_pressed():
32-
_load_scene("res://crane.tscn")
33+
func _on_TowTruck_pressed():
34+
_load_scene("res://tow_truck.tscn")

3d/truck_town/car_select.tscn

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
[ext_resource path="res://Images/choose_trailer.png" type="Texture" id=3]
66
[ext_resource path="res://Images/choose_tow.png" type="Texture" id=4]
77

8-
[node name="base" type="Control"]
8+
[node name="CarSelect" type="Control"]
99
anchor_left = 0.5
1010
anchor_top = 0.5
1111
anchor_right = 0.5
@@ -22,7 +22,7 @@ __meta__ = {
2222
"_edit_use_anchors_": false
2323
}
2424

25-
[node name="van 1" type="Button" parent="."]
25+
[node name="MiniVan" type="Button" parent="."]
2626
margin_left = 4.0
2727
margin_top = 160.0
2828
margin_right = 340.0
@@ -31,7 +31,7 @@ size_flags_horizontal = 2
3131
size_flags_vertical = 2
3232
icon = ExtResource( 2 )
3333

34-
[node name="van 2" type="Button" parent="."]
34+
[node name="TrailerTruck" type="Button" parent="."]
3535
margin_left = 344.0
3636
margin_top = 160.0
3737
margin_right = 680.0
@@ -40,14 +40,14 @@ size_flags_horizontal = 2
4040
size_flags_vertical = 2
4141
icon = ExtResource( 3 )
4242

43-
[node name="van 3" type="Button" parent="."]
43+
[node name="TowTruck" type="Button" parent="."]
4444
margin_left = 684.0
4545
margin_top = 160.0
4646
margin_right = 1020.0
4747
margin_bottom = 400.0
4848
size_flags_horizontal = 2
4949
size_flags_vertical = 2
5050
icon = ExtResource( 4 )
51-
[connection signal="pressed" from="van 1" to="." method="_on_van_1_pressed"]
52-
[connection signal="pressed" from="van 2" to="." method="_on_van_2_pressed"]
53-
[connection signal="pressed" from="van 3" to="." method="_on_van_3_pressed"]
51+
[connection signal="pressed" from="MiniVan" to="." method="_on_MiniVan_pressed"]
52+
[connection signal="pressed" from="TrailerTruck" to="." method="_on_TrailerTruck_pressed"]
53+
[connection signal="pressed" from="TowTruck" to="." method="_on_TowTruck_pressed"]

3d/truck_town/follow_camera.gd

Lines changed: 30 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,50 @@
1-
21
extends Camera
32

4-
# Member variables
5-
var collision_exception = []
63
export var min_distance = 0.5
74
export var max_distance = 4.0
85
export var angle_v_adjust = 0.0
9-
export var autoturn_ray_aperture = 25
10-
export var autoturn_speed = 50
6+
7+
var collision_exception = []
118
var max_height = 2.0
129
var min_height = 0
1310

11+
func _ready():
12+
# Find collision exceptions for ray.
13+
var node = self
14+
while(node):
15+
if (node is RigidBody):
16+
collision_exception.append(node.get_rid())
17+
break
18+
else:
19+
node = node.get_parent()
20+
21+
# This detaches the camera transform from the parent spatial node.
22+
set_as_toplevel(true)
23+
1424

15-
func _physics_process(dt):
25+
func _physics_process(_delta):
1626
var target = get_parent().get_global_transform().origin
1727
var pos = get_global_transform().origin
18-
var up = Vector3(0, 1, 0)
19-
20-
var delta = pos - target
2128

22-
# Regular delta follow
29+
var from_target = pos - target
2330

24-
# Check ranges
25-
if (delta.length() < min_distance):
26-
delta = delta.normalized()*min_distance
27-
elif (delta.length() > max_distance):
28-
delta = delta.normalized()*max_distance
31+
# Check ranges.
32+
if from_target.length() < min_distance:
33+
from_target = from_target.normalized() * min_distance
34+
elif from_target.length() > max_distance:
35+
from_target = from_target.normalized() * max_distance
2936

30-
# Check upper and lower height
31-
if ( delta.y > max_height):
32-
delta.y = max_height
33-
if ( delta.y < min_height):
34-
delta.y = min_height
37+
# Check upper and lower height.
38+
if from_target.y > max_height:
39+
from_target.y = max_height
40+
if from_target.y < min_height:
41+
from_target.y = min_height
3542

36-
pos = target + delta
43+
pos = target + from_target
3744

38-
look_at_from_position(pos, target, up)
45+
look_at_from_position(pos, target, Vector3.UP)
3946

4047
# Turn a little up or down
4148
var t = get_transform()
42-
t.basis = Basis(t.basis[0], deg2rad(angle_v_adjust))*t.basis
49+
t.basis = Basis(t.basis[0], deg2rad(angle_v_adjust)) * t.basis
4350
set_transform(t)
44-
45-
46-
func _ready():
47-
# Find collision exceptions for ray
48-
var node = self
49-
while(node):
50-
if (node is RigidBody):
51-
collision_exception.append(node.get_rid())
52-
break
53-
else:
54-
node = node.get_parent()
55-
56-
# This detaches the camera transform from the parent spatial node
57-
set_as_toplevel(true)

3d/truck_town/project.godot

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,43 @@ window/stretch/aspect="expand"
2626
window/height=720
2727
window/width=1280
2828

29+
[input]
30+
31+
accelerate={
32+
"deadzone": 0.5,
33+
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"unicode":0,"echo":false,"script":null)
34+
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null)
35+
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
36+
]
37+
}
38+
reverse={
39+
"deadzone": 0.5,
40+
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"unicode":0,"echo":false,"script":null)
41+
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null)
42+
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null)
43+
]
44+
}
45+
turn_left={
46+
"deadzone": 0.5,
47+
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null)
48+
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null)
49+
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null)
50+
]
51+
}
52+
turn_right={
53+
"deadzone": 0.5,
54+
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"unicode":0,"echo":false,"script":null)
55+
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null)
56+
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null)
57+
]
58+
}
59+
back={
60+
"deadzone": 0.5,
61+
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"unicode":0,"echo":false,"script":null)
62+
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null)
63+
]
64+
}
65+
2966
[rasterizer]
3067

3168
shadow_filter=3

0 commit comments

Comments
 (0)