Skip to content

Commit 9e197b8

Browse files
authored
Merge pull request #383 from aaronfranke/platformer-3d
Update Platformer 3D demo to Godot 3.1.2
2 parents 97f9632 + 33494c4 commit 9e197b8

22 files changed

+4296
-146
lines changed

3d/platformer/bullet.gd

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
21
extends RigidBody
32

4-
# Member variables
5-
var disabled = false
3+
#warning-ignore:unused_class_variable
4+
var enabled = true

3d/platformer/bullet.scn

-3.99 KB
Binary file not shown.

3d/platformer/bullet.tscn

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
[gd_scene load_steps=10 format=2]
2+
3+
[ext_resource path="res://bullet.gd" type="Script" id=1]
4+
5+
[sub_resource type="SpatialMaterial" id=1]
6+
flags_transparent = true
7+
flags_unshaded = true
8+
vertex_color_use_as_albedo = true
9+
vertex_color_is_srgb = true
10+
params_blend_mode = 1
11+
albedo_color = Color( 0.822, 0.795804, 0.513098, 1 )
12+
13+
[sub_resource type="ArrayMesh" id=2]
14+
resource_name = "Sphere.001"
15+
surfaces/0 = {
16+
"aabb": AABB( -0.951057, -1, -0.951057, 1.90211, 2, 1.90211 ),
17+
"array_data": PoolByteArray( 155, 187, 241, 52, 0, 0, 0, 60, 135, 36, 0, 0, 179, 184, 120, 58, 0, 0, 0, 60, 176, 98, 0, 0, 166, 182, 120, 58, 166, 182, 0, 60, 200, 98, 200, 0, 97, 185, 241, 52, 97, 185, 0, 60, 171, 36, 171, 0, 155, 187, 241, 180, 0, 0, 0, 60, 135, 220, 0, 0, 97, 185, 241, 180, 97, 185, 0, 60, 171, 220, 171, 0, 179, 184, 120, 186, 0, 0, 0, 60, 176, 158, 0, 0, 166, 182, 120, 186, 166, 182, 0, 60, 200, 158, 200, 0, 0, 0, 241, 52, 155, 187, 0, 60, 0, 36, 135, 0, 0, 0, 241, 180, 155, 187, 0, 60, 0, 220, 135, 0, 0, 0, 120, 186, 179, 184, 0, 60, 0, 158, 176, 0, 0, 0, 120, 58, 179, 184, 0, 60, 0, 98, 176, 0, 97, 57, 241, 52, 97, 185, 0, 60, 85, 36, 171, 0, 97, 57, 241, 180, 97, 185, 0, 60, 85, 220, 171, 0, 166, 54, 120, 186, 166, 182, 0, 60, 56, 158, 200, 0, 166, 54, 120, 58, 166, 182, 0, 60, 56, 98, 200, 0, 155, 59, 241, 52, 0, 0, 0, 60, 121, 36, 0, 0, 155, 59, 241, 180, 0, 0, 0, 60, 121, 220, 0, 0, 179, 56, 120, 186, 0, 0, 0, 60, 80, 158, 0, 0, 179, 56, 120, 58, 0, 0, 0, 60, 80, 98, 0, 0, 97, 57, 241, 52, 97, 57, 0, 60, 85, 36, 85, 0, 97, 57, 241, 180, 97, 57, 0, 60, 85, 220, 85, 0, 166, 54, 120, 186, 166, 54, 0, 60, 56, 158, 56, 0, 166, 54, 120, 58, 166, 54, 0, 60, 56, 98, 56, 0, 0, 0, 241, 52, 155, 59, 0, 60, 0, 36, 121, 0, 0, 0, 241, 180, 155, 59, 0, 60, 0, 220, 121, 0, 0, 0, 120, 186, 179, 56, 0, 60, 0, 158, 80, 0, 0, 0, 120, 58, 179, 56, 0, 60, 0, 98, 80, 0, 97, 185, 241, 52, 97, 57, 0, 60, 171, 36, 85, 0, 97, 185, 241, 180, 97, 57, 0, 60, 171, 220, 85, 0, 166, 182, 120, 186, 166, 54, 0, 60, 200, 158, 56, 0, 166, 182, 120, 58, 166, 54, 0, 60, 200, 98, 56, 0, 0, 0, 0, 60, 0, 0, 0, 60, 0, 127, 0, 0, 0, 0, 0, 188, 0, 0, 0, 60, 0, 130, 0, 0 ),
18+
"array_index_data": PoolByteArray( 0, 0, 2, 0, 1, 0, 0, 0, 3, 0, 2, 0, 4, 0, 3, 0, 0, 0, 4, 0, 5, 0, 3, 0, 6, 0, 5, 0, 4, 0, 6, 0, 7, 0, 5, 0, 5, 0, 8, 0, 3, 0, 5, 0, 9, 0, 8, 0, 7, 0, 9, 0, 5, 0, 7, 0, 10, 0, 9, 0, 3, 0, 11, 0, 2, 0, 3, 0, 8, 0, 11, 0, 9, 0, 12, 0, 8, 0, 9, 0, 13, 0, 12, 0, 10, 0, 13, 0, 9, 0, 10, 0, 14, 0, 13, 0, 8, 0, 15, 0, 11, 0, 8, 0, 12, 0, 15, 0, 13, 0, 16, 0, 12, 0, 13, 0, 17, 0, 16, 0, 14, 0, 17, 0, 13, 0, 14, 0, 18, 0, 17, 0, 12, 0, 19, 0, 15, 0, 12, 0, 16, 0, 19, 0, 17, 0, 20, 0, 16, 0, 17, 0, 21, 0, 20, 0, 18, 0, 21, 0, 17, 0, 18, 0, 22, 0, 21, 0, 16, 0, 23, 0, 19, 0, 16, 0, 20, 0, 23, 0, 21, 0, 24, 0, 20, 0, 21, 0, 25, 0, 24, 0, 22, 0, 25, 0, 21, 0, 22, 0, 26, 0, 25, 0, 20, 0, 27, 0, 23, 0, 20, 0, 24, 0, 27, 0, 25, 0, 28, 0, 24, 0, 25, 0, 29, 0, 28, 0, 26, 0, 29, 0, 25, 0, 26, 0, 30, 0, 29, 0, 24, 0, 31, 0, 27, 0, 24, 0, 28, 0, 31, 0, 1, 0, 2, 0, 32, 0, 33, 0, 7, 0, 6, 0, 2, 0, 11, 0, 32, 0, 33, 0, 10, 0, 7, 0, 11, 0, 15, 0, 32, 0, 33, 0, 14, 0, 10, 0, 15, 0, 19, 0, 32, 0, 33, 0, 18, 0, 14, 0, 19, 0, 23, 0, 32, 0, 33, 0, 22, 0, 18, 0, 23, 0, 27, 0, 32, 0, 33, 0, 26, 0, 22, 0, 27, 0, 31, 0, 32, 0, 33, 0, 30, 0, 26, 0, 29, 0, 0, 0, 28, 0, 29, 0, 4, 0, 0, 0, 30, 0, 4, 0, 29, 0, 30, 0, 6, 0, 4, 0, 32, 0, 31, 0, 1, 0, 33, 0, 6, 0, 30, 0, 1, 0, 28, 0, 0, 0, 1, 0, 31, 0, 28, 0 ),
19+
"blend_shape_data": [ ],
20+
"format": 98051,
21+
"index_count": 192,
22+
"material": SubResource( 1 ),
23+
"primitive": 4,
24+
"skeleton_aabb": [ ],
25+
"vertex_count": 34
26+
}
27+
28+
[sub_resource type="SpatialMaterial" id=3]
29+
albedo_color = Color( 0.7, 0.7, 0.7, 1 )
30+
metallic = 0.1
31+
roughness = 0.0
32+
emission_enabled = true
33+
emission = Color( 1, 0.884824, 0.513098, 1 )
34+
emission_energy = 3.71
35+
emission_operator = 0
36+
emission_on_uv2 = false
37+
38+
[sub_resource type="Animation" id=4]
39+
length = 2.0
40+
tracks/0/type = "value"
41+
tracks/0/path = NodePath("Sphere:visible")
42+
tracks/0/interp = 1
43+
tracks/0/loop_wrap = true
44+
tracks/0/imported = false
45+
tracks/0/enabled = true
46+
tracks/0/keys = {
47+
"times": PoolRealArray( 0, 1.5 ),
48+
"transitions": PoolRealArray( 1, 1 ),
49+
"update": 1,
50+
"values": [ true, false ]
51+
}
52+
tracks/1/type = "value"
53+
tracks/1/path = NodePath("Particles:emitting")
54+
tracks/1/interp = 1
55+
tracks/1/loop_wrap = true
56+
tracks/1/imported = false
57+
tracks/1/enabled = true
58+
tracks/1/keys = {
59+
"times": PoolRealArray( 0, 1.5 ),
60+
"transitions": PoolRealArray( 1, 1 ),
61+
"update": 1,
62+
"values": [ true, false ]
63+
}
64+
tracks/2/type = "method"
65+
tracks/2/path = NodePath(".")
66+
tracks/2/interp = 1
67+
tracks/2/loop_wrap = true
68+
tracks/2/imported = false
69+
tracks/2/enabled = true
70+
tracks/2/keys = {
71+
"times": PoolRealArray( 2 ),
72+
"transitions": PoolRealArray( 1 ),
73+
"values": [ {
74+
"args": [ ],
75+
"method": "queue_free"
76+
} ]
77+
}
78+
79+
[sub_resource type="Gradient" id=5]
80+
colors = PoolColorArray( 1, 1, 1, 1, 1, 1, 1, 0 )
81+
82+
[sub_resource type="GradientTexture" id=6]
83+
gradient = SubResource( 5 )
84+
85+
[sub_resource type="ParticlesMaterial" id=7]
86+
spread = 0.0
87+
gravity = Vector3( 0, 0, 0 )
88+
scale = 0.3
89+
color_ramp = SubResource( 6 )
90+
91+
[sub_resource type="SphereShape" id=8]
92+
radius = 0.27
93+
94+
[node name="Bullet" type="RigidBody"]
95+
mass = 0.4
96+
script = ExtResource( 1 )
97+
__meta__ = {
98+
"__editor_plugin_screen__": "3D"
99+
}
100+
101+
[node name="Sphere" type="MeshInstance" parent="."]
102+
transform = Transform( 0.24972, 0, 0, 0, 0.24972, 0, 0, 0, 0.24972, 0.00159812, 0.0110106, 0.0045104 )
103+
mesh = SubResource( 2 )
104+
material/0 = SubResource( 3 )
105+
106+
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
107+
autoplay = "life"
108+
anims/life = SubResource( 4 )
109+
110+
[node name="Particles" type="Particles" parent="."]
111+
amount = 16
112+
lifetime = 0.4
113+
fixed_fps = 60
114+
fract_delta = false
115+
local_coords = false
116+
process_material = SubResource( 7 )
117+
draw_pass_1 = SubResource( 2 )
118+
119+
[node name="CollisionShape" type="CollisionShape" parent="."]
120+
shape = SubResource( 8 )

3d/platformer/coin.gd

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
1-
21
extends Area
32

4-
# Member variables
53
var taken = false
64

7-
85
func _on_coin_body_enter(body):
96
if not taken and body is preload("res://player.gd"):
10-
get_node("anim").play("take")
7+
get_node("Animation").play("take")
118
taken = true

3d/platformer/coin.scn

-4.73 KB
Binary file not shown.

3d/platformer/coin.tscn

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
[gd_scene load_steps=14 format=2]
2+
3+
[ext_resource path="res://coin.gd" type="Script" id=1]
4+
[ext_resource path="res://sound_coin.wav" type="AudioStream" id=2]
5+
[ext_resource path="res://shine.png" type="Texture" id=3]
6+
7+
[sub_resource type="SpatialMaterial" id=1]
8+
albedo_color = Color( 1, 0.837686, 0, 1 )
9+
metallic = 0.86
10+
roughness = 0.0
11+
emission_enabled = true
12+
emission = Color( 0.219922, 0.109961, 0, 1 )
13+
emission_energy = 1.71
14+
emission_operator = 0
15+
emission_on_uv2 = false
16+
17+
[sub_resource type="ArrayMesh" id=2]
18+
resource_name = "Circle"
19+
surfaces/0 = {
20+
"aabb": AABB( -1, -0.191052, -1, 2, 0.407182, 2.64929 ),
21+
"array_data": PoolByteArray( 0, 184, 29, 178, 237, 186, 0, 60, 0, 130, 0, 0, 0, 0, 29, 178, 255, 187, 0, 60, 0, 130, 0, 0, 255, 55, 29, 178, 237, 186, 0, 60, 0, 130, 0, 0, 237, 58, 29, 178, 0, 184, 0, 60, 0, 130, 0, 0, 237, 186, 29, 178, 255, 183, 0, 60, 0, 130, 0, 0, 0, 60, 29, 178, 0, 0, 0, 60, 0, 130, 0, 0, 0, 188, 29, 178, 0, 0, 0, 60, 0, 130, 0, 0, 0, 60, 29, 178, 49, 57, 0, 60, 0, 130, 0, 0, 0, 188, 29, 178, 49, 57, 0, 60, 0, 130, 0, 0, 237, 58, 29, 178, 152, 60, 0, 60, 0, 130, 0, 0, 237, 186, 29, 178, 152, 60, 0, 60, 0, 130, 0, 0, 0, 56, 29, 178, 15, 62, 0, 60, 0, 130, 0, 0, 0, 184, 29, 178, 15, 62, 0, 60, 0, 130, 0, 0, 0, 0, 29, 178, 152, 62, 0, 60, 0, 130, 0, 0, 255, 55, 234, 50, 237, 186, 0, 60, 0, 127, 0, 0, 0, 0, 234, 50, 255, 187, 0, 60, 0, 127, 0, 0, 0, 184, 234, 50, 237, 186, 0, 60, 0, 127, 0, 0, 237, 58, 234, 50, 0, 184, 0, 60, 0, 127, 0, 0, 237, 186, 234, 50, 255, 183, 0, 60, 0, 127, 0, 0, 0, 60, 234, 50, 0, 0, 0, 60, 0, 127, 0, 0, 0, 188, 234, 50, 0, 0, 0, 60, 0, 127, 0, 0, 0, 60, 234, 50, 49, 57, 0, 60, 0, 127, 0, 0, 0, 188, 234, 50, 49, 57, 0, 60, 0, 127, 0, 0, 237, 58, 234, 50, 152, 60, 0, 60, 0, 127, 0, 0, 237, 186, 234, 50, 152, 60, 0, 60, 0, 127, 0, 0, 0, 56, 234, 50, 15, 62, 0, 60, 0, 127, 0, 0, 0, 184, 234, 50, 15, 62, 0, 60, 0, 127, 0, 0, 0, 0, 234, 50, 152, 62, 0, 60, 0, 127, 0, 0, 0, 0, 29, 178, 152, 62, 0, 60, 0, 0, 126, 0, 0, 0, 234, 50, 152, 62, 0, 60, 0, 0, 126, 0, 0, 184, 234, 50, 15, 62, 0, 60, 193, 0, 109, 0, 0, 184, 29, 178, 15, 62, 0, 60, 193, 0, 109, 0, 0, 0, 29, 178, 255, 187, 0, 60, 0, 0, 129, 0, 0, 0, 234, 50, 255, 187, 0, 60, 0, 0, 129, 0, 255, 55, 234, 50, 237, 186, 0, 60, 63, 0, 147, 0, 255, 55, 29, 178, 237, 186, 0, 60, 63, 0, 147, 0, 237, 186, 234, 50, 152, 60, 0, 60, 147, 0, 63, 0, 237, 186, 29, 178, 152, 60, 0, 60, 147, 0, 63, 0, 237, 58, 234, 50, 0, 184, 0, 60, 109, 0, 193, 0, 237, 58, 29, 178, 0, 184, 0, 60, 109, 0, 193, 0, 0, 188, 234, 50, 49, 57, 0, 60, 131, 0, 16, 0, 0, 188, 29, 178, 49, 57, 0, 60, 131, 0, 16, 0, 0, 60, 234, 50, 0, 0, 0, 60, 125, 0, 240, 0, 0, 60, 29, 178, 0, 0, 0, 60, 125, 0, 240, 0, 0, 60, 29, 178, 49, 57, 0, 60, 125, 0, 16, 0, 0, 60, 234, 50, 49, 57, 0, 60, 125, 0, 16, 0, 237, 58, 234, 50, 152, 60, 0, 60, 109, 0, 63, 0, 237, 58, 29, 178, 152, 60, 0, 60, 109, 0, 63, 0, 0, 188, 29, 178, 0, 0, 0, 60, 131, 0, 240, 0, 0, 188, 234, 50, 0, 0, 0, 60, 131, 0, 240, 0, 237, 186, 234, 50, 255, 183, 0, 60, 147, 0, 193, 0, 237, 186, 29, 178, 255, 183, 0, 60, 147, 0, 193, 0, 0, 56, 234, 50, 15, 62, 0, 60, 63, 0, 109, 0, 0, 56, 29, 178, 15, 62, 0, 60, 63, 0, 109, 0, 0, 184, 234, 50, 237, 186, 0, 60, 193, 0, 147, 0, 0, 184, 29, 178, 237, 186, 0, 60, 193, 0, 147, 0 ),
22+
"array_index_data": PoolByteArray( 0, 0, 2, 0, 1, 0, 0, 0, 3, 0, 2, 0, 0, 0, 4, 0, 3, 0, 3, 0, 4, 0, 5, 0, 5, 0, 4, 0, 6, 0, 5, 0, 6, 0, 7, 0, 7, 0, 6, 0, 8, 0, 7, 0, 8, 0, 9, 0, 9, 0, 8, 0, 10, 0, 9, 0, 10, 0, 11, 0, 11, 0, 10, 0, 12, 0, 11, 0, 12, 0, 13, 0, 14, 0, 16, 0, 15, 0, 14, 0, 17, 0, 16, 0, 16, 0, 17, 0, 18, 0, 18, 0, 17, 0, 19, 0, 18, 0, 19, 0, 20, 0, 20, 0, 19, 0, 21, 0, 20, 0, 21, 0, 22, 0, 22, 0, 21, 0, 23, 0, 22, 0, 23, 0, 24, 0, 24, 0, 23, 0, 25, 0, 24, 0, 25, 0, 26, 0, 26, 0, 25, 0, 27, 0, 28, 0, 30, 0, 29, 0, 28, 0, 31, 0, 30, 0, 32, 0, 34, 0, 33, 0, 32, 0, 35, 0, 34, 0, 31, 0, 36, 0, 30, 0, 31, 0, 37, 0, 36, 0, 35, 0, 38, 0, 34, 0, 35, 0, 39, 0, 38, 0, 37, 0, 40, 0, 36, 0, 37, 0, 41, 0, 40, 0, 39, 0, 42, 0, 38, 0, 39, 0, 43, 0, 42, 0, 44, 0, 46, 0, 45, 0, 44, 0, 47, 0, 46, 0, 48, 0, 50, 0, 49, 0, 48, 0, 51, 0, 50, 0, 47, 0, 52, 0, 46, 0, 47, 0, 53, 0, 52, 0, 44, 0, 42, 0, 43, 0, 44, 0, 45, 0, 42, 0, 51, 0, 54, 0, 50, 0, 51, 0, 55, 0, 54, 0, 53, 0, 29, 0, 52, 0, 53, 0, 28, 0, 29, 0, 41, 0, 49, 0, 40, 0, 41, 0, 48, 0, 49, 0, 55, 0, 33, 0, 54, 0, 55, 0, 32, 0, 33, 0 ),
23+
"blend_shape_data": [ ],
24+
"format": 98051,
25+
"index_count": 156,
26+
"material": SubResource( 1 ),
27+
"primitive": 4,
28+
"skeleton_aabb": [ ],
29+
"vertex_count": 56
30+
}
31+
32+
[sub_resource type="Animation" id=3]
33+
resource_name = "spin"
34+
length = 2.0
35+
loop = true
36+
tracks/0/type = "value"
37+
tracks/0/path = NodePath("Circle:rotation_degrees")
38+
tracks/0/interp = 1
39+
tracks/0/loop_wrap = true
40+
tracks/0/imported = false
41+
tracks/0/enabled = true
42+
tracks/0/keys = {
43+
"times": PoolRealArray( 0, 2 ),
44+
"transitions": PoolRealArray( 1, 1 ),
45+
"update": 0,
46+
"values": [ Vector3( -90, 0, 0 ), Vector3( -90, 0, -360 ) ]
47+
}
48+
49+
[sub_resource type="Animation" id=4]
50+
resource_name = "take"
51+
tracks/0/type = "value"
52+
tracks/0/path = NodePath("Circle:visible")
53+
tracks/0/interp = 1
54+
tracks/0/loop_wrap = true
55+
tracks/0/imported = false
56+
tracks/0/enabled = true
57+
tracks/0/keys = {
58+
"times": PoolRealArray( 0 ),
59+
"transitions": PoolRealArray( 1 ),
60+
"update": 1,
61+
"values": [ false ]
62+
}
63+
tracks/1/type = "value"
64+
tracks/1/path = NodePath("Particles:emitting")
65+
tracks/1/interp = 1
66+
tracks/1/loop_wrap = true
67+
tracks/1/imported = false
68+
tracks/1/enabled = true
69+
tracks/1/keys = {
70+
"times": PoolRealArray( 0 ),
71+
"transitions": PoolRealArray( 1 ),
72+
"update": 1,
73+
"values": [ true ]
74+
}
75+
tracks/2/type = "value"
76+
tracks/2/path = NodePath("Sound:playing")
77+
tracks/2/interp = 1
78+
tracks/2/loop_wrap = true
79+
tracks/2/imported = false
80+
tracks/2/enabled = true
81+
tracks/2/keys = {
82+
"times": PoolRealArray( 0 ),
83+
"transitions": PoolRealArray( 1 ),
84+
"update": 1,
85+
"values": [ true ]
86+
}
87+
88+
[sub_resource type="SphereShape" id=5]
89+
radius = 0.312546
90+
91+
[sub_resource type="Gradient" id=6]
92+
colors = PoolColorArray( 1, 1, 1, 1, 1, 1, 1, 0 )
93+
94+
[sub_resource type="GradientTexture" id=7]
95+
gradient = SubResource( 6 )
96+
97+
[sub_resource type="ParticlesMaterial" id=8]
98+
emission_shape = 2
99+
emission_box_extents = Vector3( 0.3, 0.3, 0.3 )
100+
initial_velocity = 5.51
101+
angular_velocity = 4.27461e-05
102+
scale = 0.1
103+
color_ramp = SubResource( 7 )
104+
105+
[sub_resource type="SpatialMaterial" id=9]
106+
flags_transparent = true
107+
flags_unshaded = true
108+
vertex_color_use_as_albedo = true
109+
vertex_color_is_srgb = true
110+
params_blend_mode = 1
111+
params_billboard_mode = 3
112+
particles_anim_h_frames = 1
113+
particles_anim_v_frames = 1
114+
particles_anim_loop = false
115+
albedo_color = Color( 1, 1, 0.759137, 1 )
116+
albedo_texture = ExtResource( 3 )
117+
118+
[sub_resource type="QuadMesh" id=10]
119+
material = SubResource( 9 )
120+
121+
[node name="Coin" type="Area"]
122+
input_ray_pickable = false
123+
script = ExtResource( 1 )
124+
__meta__ = {
125+
"__editor_plugin_screen__": "3D"
126+
}
127+
128+
[node name="Circle" type="MeshInstance" parent="."]
129+
transform = Transform( 0.2, 0, 0, 0, -3.25841e-08, 0.2, 0, -0.2, -3.25841e-08, 0.00550658, 0.532125, 0.000651598 )
130+
layers = 2
131+
mesh = SubResource( 2 )
132+
material/0 = null
133+
134+
[node name="Animation" type="AnimationPlayer" parent="."]
135+
autoplay = "spin"
136+
anims/spin = SubResource( 3 )
137+
anims/take = SubResource( 4 )
138+
139+
[node name="CollisionShape" type="CollisionShape" parent="."]
140+
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00894194, 0.575859, 0.0193955 )
141+
shape = SubResource( 5 )
142+
143+
[node name="VisibilityEnabler" type="VisibilityEnabler" parent="."]
144+
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0321827, 0.57887, 0.0268312 )
145+
aabb = AABB( -0.29109, -0.328186, -0.295852, 0.582181, 0.656373, 0.591703 )
146+
freeze_bodies = false
147+
148+
[node name="Sound" type="AudioStreamPlayer3D" parent="."]
149+
stream = ExtResource( 2 )
150+
151+
[node name="Particles" type="Particles" parent="."]
152+
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.000732422, 0.542954, 0 )
153+
emitting = false
154+
one_shot = true
155+
explosiveness = 1.0
156+
visibility_aabb = AABB( -4.12919, -4, -4, 8.25837, 8, 8 )
157+
process_material = SubResource( 8 )
158+
draw_pass_1 = SubResource( 10 )
159+
[connection signal="body_entered" from="." to="." method="_on_coin_body_enter"]

3d/platformer/default_bus_layout.tres

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,3 @@ bus/2/volume_db = 0.0
4040
bus/2/send = "Master"
4141
bus/2/effect/0/effect = SubResource( 3 )
4242
bus/2/effect/0/enabled = true
43-

3d/platformer/enemy.gd

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

4-
# Member variables
53
const STATE_WALKING = 0
64
const STATE_DYING = 1
75

@@ -14,15 +12,17 @@ var rot_speed = 1
1412

1513
var dying = false
1614

15+
onready var gravity = ProjectSettings.get_setting("physics/3d/default_gravity") * ProjectSettings.get_setting("physics/3d/default_gravity_vector")
1716

1817
func _integrate_forces(state):
1918
var delta = state.get_step()
2019
var lv = state.get_linear_velocity()
2120
var g = state.get_total_gravity()
22-
# get_total_gravity returns zero for the first few frames, leading to errors
23-
if g == Vector3.ZERO: g = Vector3 (0, -9.8, 0)
21+
# get_total_gravity returns zero for the first few frames, leading to errors.
22+
if g == Vector3.ZERO:
23+
g = gravity
2424

25-
lv += g * delta # Apply gravity
25+
lv += g * delta # Apply gravity.
2626
var up = -g.normalized()
2727

2828
if dying:
@@ -34,22 +34,20 @@ func _integrate_forces(state):
3434
var dp = state.get_contact_local_normal(i)
3535

3636
if cc:
37-
if cc is preload("res://bullet.gd") and not cc.disabled:
37+
if cc is preload("res://bullet.gd") and cc.enabled:
3838
set_mode(MODE_RIGID)
3939
dying = true
40-
#lv = s.get_contact_local_normal(i)*400
4140
state.set_angular_velocity(-dp.cross(up).normalized() * 33.0)
4241
get_node("AnimationPlayer").play("impact")
4342
get_node("AnimationPlayer").queue("explode")
44-
set_friction(1)
45-
cc.disabled = true
46-
get_node("sound_hit").play()
43+
cc.enabled = false
44+
get_node("SoundHit").play()
4745
return
4846

49-
var col_floor = get_node("Armature/ray_floor").is_colliding()
50-
var col_wall = get_node("Armature/ray_wall").is_colliding()
47+
var col_floor = get_node("Armature/RayFloor").is_colliding()
48+
var col_wall = get_node("Armature/RayWall").is_colliding()
5149

52-
var advance = not col_wall and col_floor
50+
var advance = col_floor and not col_wall
5351

5452
var dir = get_node("Armature").get_transform().basis[2].normalized()
5553
var deaccel_dir = dir
@@ -60,7 +58,7 @@ func _integrate_forces(state):
6058
deaccel_dir = dir.cross(g).normalized()
6159
else:
6260
if prev_advance:
63-
rot_dir = 1 # randf()*2.0 - 1.0
61+
rot_dir = 1
6462

6563
dir = Basis(up, rot_dir * rot_speed * delta).xform(dir)
6664
get_node("Armature").set_transform(Transform().looking_at(-dir, up))

3d/platformer/enemy.scn

-22.6 KB
Binary file not shown.

0 commit comments

Comments
 (0)