mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2026-01-04 23:10:08 +01:00
Fix look_at_from_position() usage in Squash the Creeps (3D) (#1165)
The mob's orientation was previously shifted according to the player's height, which could lead to collision and movement issues that were difficult to diagnose.
This commit is contained in:
@@ -129,7 +129,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
|||||||
curve = SubResource("5")
|
curve = SubResource("5")
|
||||||
|
|
||||||
[node name="SpawnLocation" type="PathFollow3D" parent="SpawnPath"]
|
[node name="SpawnLocation" type="PathFollow3D" parent="SpawnPath"]
|
||||||
transform = Transform3D(-4.37113e-08, 0, 0.999999, 0, 1, 0, -0.999999, 0, -4.37113e-08, 14, 0, -15)
|
transform = Transform3D(-4.3711346e-08, 0, 0.999999, 0, 1, 0, -0.999999, 0, -4.3711346e-08, 14, 0, -15)
|
||||||
rotation_mode = 1
|
rotation_mode = 1
|
||||||
cubic_interp = false
|
cubic_interp = false
|
||||||
loop = false
|
loop = false
|
||||||
|
|||||||
@@ -14,7 +14,13 @@ func _physics_process(_delta):
|
|||||||
|
|
||||||
|
|
||||||
func initialize(start_position, player_position):
|
func initialize(start_position, player_position):
|
||||||
look_at_from_position(start_position, player_position, Vector3.UP)
|
# Ignore the player's height, so that the mob's orientation is not slightly
|
||||||
|
# shifted if the mob spawns while the player is jumping.
|
||||||
|
var target = Vector3(player_position.x, start_position.y, player_position.z)
|
||||||
|
look_at_from_position(start_position, target, Vector3.UP)
|
||||||
|
|
||||||
|
# Rotate this mob randomly within range of -45 and +45 degrees,
|
||||||
|
# so that it doesn't move directly towards the player.
|
||||||
rotate_y(randf_range(-PI / 4, PI / 4))
|
rotate_y(randf_range(-PI / 4, PI / 4))
|
||||||
|
|
||||||
var random_speed = randf_range(min_speed, max_speed)
|
var random_speed = randf_range(min_speed, max_speed)
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ aabb = AABB(-1.19986, 0.251327, -1.57098, 2.41047, 1.09305, 3.17223)
|
|||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
callback_mode_process = 0
|
callback_mode_process = 0
|
||||||
libraries = {
|
libraries = {
|
||||||
"": SubResource("AnimationLibrary_5n6vs")
|
&"": SubResource("AnimationLibrary_5n6vs")
|
||||||
}
|
}
|
||||||
autoplay = "float"
|
autoplay = "float"
|
||||||
|
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ shape = SubResource("CylinderShape3D_76fa1")
|
|||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
callback_mode_process = 0
|
callback_mode_process = 0
|
||||||
libraries = {
|
libraries = {
|
||||||
"": SubResource("AnimationLibrary_aq6tr")
|
&"": SubResource("AnimationLibrary_aq6tr")
|
||||||
}
|
}
|
||||||
autoplay = "float"
|
autoplay = "float"
|
||||||
|
|
||||||
|
|||||||
@@ -15,9 +15,11 @@ dest_files=["res://.godot/imported/mob.glb-3afb43c03b9d1598b6af5154e2543eac.scn"
|
|||||||
|
|
||||||
nodes/root_type="Spatial"
|
nodes/root_type="Spatial"
|
||||||
nodes/root_name="Scene Root"
|
nodes/root_name="Scene Root"
|
||||||
|
nodes/root_script=null
|
||||||
nodes/apply_root_scale=true
|
nodes/apply_root_scale=true
|
||||||
nodes/root_scale=1.0
|
nodes/root_scale=1.0
|
||||||
nodes/import_as_skeleton_bones=false
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_name_suffixes=true
|
||||||
nodes/use_node_type_suffixes=true
|
nodes/use_node_type_suffixes=true
|
||||||
meshes/ensure_tangents=true
|
meshes/ensure_tangents=true
|
||||||
meshes/generate_lods=false
|
meshes/generate_lods=false
|
||||||
@@ -32,6 +34,9 @@ animation/trimming=false
|
|||||||
animation/remove_immutable_tracks=true
|
animation/remove_immutable_tracks=true
|
||||||
animation/import_rest_as_RESET=false
|
animation/import_rest_as_RESET=false
|
||||||
import_script/path=""
|
import_script/path=""
|
||||||
|
materials/extract=0
|
||||||
|
materials/extract_format=0
|
||||||
|
materials/extract_path=""
|
||||||
_subresources={}
|
_subresources={}
|
||||||
gltf/naming_version=0
|
gltf/naming_version=0
|
||||||
gltf/embedded_image_handling=1
|
gltf/embedded_image_handling=1
|
||||||
|
|||||||
@@ -15,9 +15,11 @@ dest_files=["res://.godot/imported/player.glb-08dcfb373480a049995065542e37637b.s
|
|||||||
|
|
||||||
nodes/root_type="Spatial"
|
nodes/root_type="Spatial"
|
||||||
nodes/root_name="Scene Root"
|
nodes/root_name="Scene Root"
|
||||||
|
nodes/root_script=null
|
||||||
nodes/apply_root_scale=true
|
nodes/apply_root_scale=true
|
||||||
nodes/root_scale=1.0
|
nodes/root_scale=1.0
|
||||||
nodes/import_as_skeleton_bones=false
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_name_suffixes=true
|
||||||
nodes/use_node_type_suffixes=true
|
nodes/use_node_type_suffixes=true
|
||||||
meshes/ensure_tangents=true
|
meshes/ensure_tangents=true
|
||||||
meshes/generate_lods=false
|
meshes/generate_lods=false
|
||||||
@@ -32,6 +34,9 @@ animation/trimming=false
|
|||||||
animation/remove_immutable_tracks=true
|
animation/remove_immutable_tracks=true
|
||||||
animation/import_rest_as_RESET=false
|
animation/import_rest_as_RESET=false
|
||||||
import_script/path=""
|
import_script/path=""
|
||||||
|
materials/extract=0
|
||||||
|
materials/extract_format=0
|
||||||
|
materials/extract_path=""
|
||||||
_subresources={}
|
_subresources={}
|
||||||
gltf/naming_version=0
|
gltf/naming_version=0
|
||||||
gltf/embedded_image_handling=1
|
gltf/embedded_image_handling=1
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ msdf_pixel_range=8
|
|||||||
msdf_size=48
|
msdf_size=48
|
||||||
allow_system_fallback=true
|
allow_system_fallback=true
|
||||||
force_autohinter=false
|
force_autohinter=false
|
||||||
|
modulate_color_glyphs=false
|
||||||
hinting=1
|
hinting=1
|
||||||
subpixel_positioning=1
|
subpixel_positioning=1
|
||||||
keep_rounding_remainders=true
|
keep_rounding_remainders=true
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/icon.webp-e94f9a68b0f625a567a797079e4d325f.ct
|
|||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
@@ -25,6 +27,10 @@ mipmaps/generate=false
|
|||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ This is a finished version of the game featured in the \"Your first 3D game\"
|
|||||||
tutorial in the official documentation."
|
tutorial in the official documentation."
|
||||||
config/tags=PackedStringArray("3d", "demo", "official")
|
config/tags=PackedStringArray("3d", "demo", "official")
|
||||||
run/main_scene="res://Main.tscn"
|
run/main_scene="res://Main.tscn"
|
||||||
config/features=PackedStringArray("4.4")
|
config/features=PackedStringArray("4.5")
|
||||||
config/icon="res://icon.webp"
|
config/icon="res://icon.webp"
|
||||||
|
|
||||||
[autoload]
|
[autoload]
|
||||||
|
|||||||
Reference in New Issue
Block a user