修复弹回问题,优化相机clamp方案

master
chendian 2 years ago
parent 798b11ba1c
commit 8c63bff983

File diff suppressed because one or more lines are too long

@ -17,9 +17,9 @@ shadow_opacity = 0.5
shadow_blur = 0.0
[node name="Ground" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.4, -1, 3.6)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.4, -1, 3.52)
use_collision = true
size = Vector3(12.8, 2, 7.2)
size = Vector3(12.8, 2, 7.04)
[node name="GridMap" type="GridMap" parent="."]
mesh_library = ExtResource("2_gdrhl")

@ -14,9 +14,9 @@ transform = Transform3D(0.707107, -0.5, 0.5, 0, 0.707107, 0.707107, -0.707107, -
shadow_enabled = true
[node name="Ground" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.4, -1, 7.2)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.4, -1, 7.04)
use_collision = true
size = Vector3(12.8, 2, 14.4)
size = Vector3(12.8, 2, 14.08)
[node name="GridMap" type="GridMap" parent="."]
mesh_library = ExtResource("2_xalwl")

@ -17,9 +17,9 @@ shadow_opacity = 0.5
shadow_blur = 0.0
[node name="Ground" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 19.2, -1, 3.6)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 19.2, -1, 3.52)
use_collision = true
size = Vector3(38.4, 2, 7.2)
size = Vector3(38.4, 2, 7.04)
[node name="GridMap" type="GridMap" parent="."]
mesh_library = ExtResource("2_0qnfg")

@ -23,9 +23,9 @@ visible = false
omni_range = 12.6107
[node name="Ground" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.4, -1, 3.6)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.4, -1, 3.52)
use_collision = true
size = Vector3(12.8, 2, 7.2)
size = Vector3(12.8, 2, 7.04)
[node name="GridMap" type="GridMap" parent="."]
mesh_library = ExtResource("2_4ejwk")

@ -14,14 +14,14 @@ transform = Transform3D(0.707107, -0.5, 0.5, 0, 0.707107, 0.707107, -0.707107, -
shadow_enabled = true
[node name="Ground" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.4, -1, 7.2)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.4, -1, 7.04)
use_collision = true
size = Vector3(12.8, 2, 14.4)
size = Vector3(12.8, 2, 14.08)
[node name="GridMap" type="GridMap" parent="."]
mesh_library = ExtResource("2_fqw73")
cell_size = Vector3(0.64, 0.64, 0.64)
data = {
"cells": PackedInt32Array(0, 0, 1048592, 1, 0, 1048592, 2, 0, 1048592, 3, 0, 1048592, 4, 0, 1048592, 5, 0, 1048592, 6, 0, 1048592, 7, 0, 1048592, 9, 0, 1048592, 10, 0, 1048592, 11, 0, 1048592, 12, 0, 1048592, 13, 0, 1048592, 14, 0, 1048592, 15, 0, 1048592, 16, 0, 1048592, 17, 0, 1048592, 18, 0, 1048592, 19, 0, 1048592, 19, 1, 1441804, 18, 1, 1441804, 17, 1, 1441804, 16, 1, 1441804, 15, 1, 1441804, 14, 1, 1441804, 13, 1, 1441804, 12, 1, 1441804, 11, 1, 1441804, 10, 1, 1441804, 9, 1, 1441804, 8, 1, 1441804, 7, 1, 1441804, 6, 1, 1441804, 0, 1, 1441804, 1, 1, 1441804, 2, 1, 1441804, 3, 1, 1441804, 4, 1, 1441804, 5, 1, 1441804, 19, 2, 1441805, 18, 2, 1441805, 17, 2, 1441805, 16, 2, 1441805, 15, 2, 1441805, 14, 2, 1441805, 13, 2, 1441805, 12, 2, 1441805, 11, 2, 1441805, 10, 2, 1441805, 9, 2, 1441805, 8, 2, 1441805, 7, 2, 1441805, 6, 2, 1441805, 5, 2, 1441805, 4, 2, 1441805, 3, 2, 1441805, 2, 2, 1441805, 1, 2, 1441805, 0, 2, 1441805, 8, 0, 1048592, 20, 1, 1441804, 20, 2, 1441805, 65544, 0, 1441808, 65543, 0, 1441808, 65542, 0, 1441808, 65541, 0, 1441808, 65540, 0, 1441808, 65539, 0, 1441808, 65538, 0, 1441808, 65537, 0, 1441808, 65547, 0, 1441808, 65548, 0, 1441808, 65549, 0, 1441808, 65550, 0, 1441808, 65551, 0, 1441808, 65552, 0, 1441808, 65553, 0, 1441808, 65554, 0, 1441808, 65555, 0, 1441808, 65536, 0, 1441808, 65535, 2, 1441805, 65535, 1, 1441804, 131080, 0, 1048592, 196616, 0, 1048592, 262152, 0, 1048592, 131079, 0, 16, 131078, 0, 16, 131077, 0, 16, 131076, 0, 16, 131075, 0, 16, 131074, 0, 16, 131073, 0, 16, 131072, 0, 16, 131083, 0, 16, 131084, 0, 16, 131085, 0, 16, 131086, 0, 16, 131087, 0, 16, 131088, 0, 16, 131089, 0, 16, 131090, 0, 16, 131091, 0, 16, 196627, 0, 16, 196625, 0, 16, 196626, 0, 16, 196624, 0, 16, 196623, 0, 16, 196622, 0, 16, 196621, 0, 16, 196620, 0, 16, 196619, 0, 16, 196615, 0, 16, 196614, 0, 16, 196613, 0, 16, 196612, 0, 16, 196611, 0, 16, 196610, 0, 16, 196609, 0, 16, 196608, 0, 16, 262155, 0, 16, 262156, 0, 16, 262157, 0, 16, 262158, 0, 16, 262159, 0, 16, 262160, 0, 16, 262161, 0, 16, 262162, 0, 16, 262163, 0, 16, 262151, 0, 16, 262150, 0, 16, 262149, 0, 16, 262148, 0, 16, 262147, 0, 16, 262145, 0, 16, 262144, 0, 16, 262146, 0, 16, 262154, 0, 16, 262153, 0, 16, 0, 21, 16, 0, 20, 16)
"cells": PackedInt32Array(19, 1, 1441804, 18, 1, 1441804, 17, 1, 1441804, 16, 1, 1441804, 15, 1, 1441804, 14, 1, 1441804, 13, 1, 1441804, 0, 1, 1441804, 1, 1, 1441804, 19, 2, 1441805, 18, 2, 1441805, 17, 2, 1441805, 16, 2, 1441805, 15, 2, 1441805, 14, 2, 1441805, 13, 2, 1441805, 12, 2, 1441805, 11, 2, 1441805, 10, 2, 1441805, 9, 2, 1441805, 8, 2, 1441805, 7, 2, 1441805, 6, 2, 1441805, 5, 2, 1441805, 4, 2, 1441805, 3, 2, 1441805, 2, 2, 1441805, 1, 2, 1441805, 0, 2, 1441805, 20, 1, 1441804, 20, 2, 1441805, 65535, 2, 1441805, 65535, 1, 1441804, 0, 21, 16, 1, 21, 16, 2, 21, 16, 3, 21, 16, 4, 21, 16, 5, 21, 16, 6, 21, 16, 7, 21, 16, 12, 21, 16, 13, 21, 16, 14, 21, 16, 15, 21, 16, 17, 21, 16, 16, 21, 16, 18, 21, 16, 19, 21, 16, 19, 3, 16, 19, 4, 16, 19, 5, 16, 19, 6, 16, 19, 7, 16, 19, 8, 16, 19, 9, 16, 19, 10, 16, 19, 11, 16, 19, 12, 16, 19, 13, 16, 0, 3, 16, 0, 4, 16, 0, 5, 16, 0, 6, 16, 0, 7, 16, 0, 8, 16, 0, 9, 16, 0, 10, 16, 0, 11, 16, 0, 12, 16, 0, 13, 16, 2, 1, 1441804, 3, 1, 1441804, 4, 1, 1441804, 5, 1, 1441804, 6, 1, 1441804, 7, 1, 1441804, 8, 1, 1441804, 9, 1, 1441804, 10, 1, 1441804, 11, 1, 1441804, 12, 1, 1441804, 0, 65535, 16, 1, 65535, 16, 2, 65535, 16, 3, 65535, 16, 4, 65535, 16, 5, 65535, 16, 6, 65535, 16, 7, 65535, 16, 8, 65535, 16, 9, 65535, 16, 10, 65535, 16, 11, 65535, 16, 12, 65535, 16, 13, 65535, 16, 14, 65535, 16, 15, 65535, 16, 16, 65535, 16, 17, 65535, 16, 18, 65535, 16, 19, 65535, 16, 65535, 0, 1441804, 0, 0, 1441804, 1, 0, 1441804, 2, 0, 1441804, 3, 0, 1441804, 4, 0, 1441804, 5, 0, 1441804, 6, 0, 1441804, 7, 0, 1441804, 8, 0, 1441804, 9, 0, 1441804, 10, 0, 1441804, 11, 0, 1441804, 12, 0, 1441804, 13, 0, 1441804, 14, 0, 1441804, 15, 0, 1441804, 16, 0, 1441804, 17, 0, 1441804, 18, 0, 1441804, 19, 0, 1441804, 20, 0, 1441804)
}
metadata/_editor_floor_ = Vector3(0, 0, 0)

@ -17,9 +17,9 @@ shadow_opacity = 0.5
shadow_blur = 0.0
[node name="Ground" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 19.2, -1, 3.6)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 19.2, -1, 3.52)
use_collision = true
size = Vector3(38.4, 2, 7.2)
size = Vector3(38.4, 2, 7.04)
[node name="GridMap" type="GridMap" parent="."]
mesh_library = ExtResource("2_q76ck")

@ -17,9 +17,9 @@ shadow_opacity = 0.5
shadow_blur = 0.0
[node name="Ground" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.4, -1, 3.6)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.4, -1, 3.52)
use_collision = true
size = Vector3(12.8, 2, 7.2)
size = Vector3(12.8, 2, 7.04)
[node name="GridMap" type="GridMap" parent="."]
mesh_library = ExtResource("2_dx1b7")

@ -17,14 +17,14 @@ shadow_opacity = 0.5
shadow_blur = 0.0
[node name="Ground" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.8, -1, 3.6)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.8, -1, 3.52)
use_collision = true
size = Vector3(25.6, 2, 7.2)
size = Vector3(25.6, 2, 7.04)
[node name="GridMap" type="GridMap" parent="."]
mesh_library = ExtResource("2_qax75")
cell_size = Vector3(0.64, 0.64, 0.64)
data = {
"cells": PackedInt32Array(19, 10, 0, 18, 10, 0, 17, 10, 0, 16, 10, 0, 15, 10, 917504, 14, 10, 917504, 13, 10, 917504, 12, 10, 917504, 11, 10, 917504, 8, 10, 917504, 7, 10, 917504, 6, 10, 0, 5, 10, 0, 4, 10, 0, 3, 10, 0, 2, 10, 0, 1, 10, 0, 0, 10, 0, 0, 65535, 917504, 1, 65535, 917504, 2, 65535, 917504, 3, 65535, 917504, 4, 65535, 917504, 5, 65535, 917504, 6, 65535, 917504, 7, 65535, 917504, 8, 65535, 917504, 9, 65535, 917504, 12, 65535, 917504, 13, 65535, 917504, 14, 65535, 917504, 15, 65535, 917504, 16, 65535, 917504, 17, 65535, 917504, 18, 65535, 917504, 19, 65535, 917504, 10, 65535, 917504, 11, 65535, 917504, 20, 65535, 917504, 21, 65535, 917504, 22, 65535, 917504, 23, 65535, 917504, 24, 65535, 917504, 25, 65535, 917504, 26, 65535, 917504, 27, 65535, 917504, 28, 65535, 917504, 29, 65535, 917504, 30, 65535, 917504, 31, 65535, 917504, 32, 65535, 917504, 33, 65535, 917504, 34, 65535, 917504, 35, 65535, 917504, 36, 65535, 917504, 37, 65535, 917504, 38, 65535, 917504, 39, 65535, 917504, 39, 0, 917504, 39, 1, 917504, 39, 2, 917504, 39, 3, 917504, 39, 7, 917504, 39, 8, 917504, 39, 9, 917504, 39, 10, 917504, 38, 10, 917504, 37, 10, 917504, 36, 10, 917504, 35, 10, 917504, 34, 10, 917504, 33, 10, 917504, 32, 10, 917504, 31, 10, 917504, 30, 10, 917504, 29, 10, 1245184, 28, 10, 1245184, 27, 10, 1245184, 26, 10, 1245184, 25, 10, 1245184, 24, 10, 1245184, 23, 10, 917504, 22, 10, 917504, 21, 10, 917504, 20, 10, 917504, 9, 10, 917504, 10, 10, 917504, 39, 6, 917504, 0, 11, 1245184, 1, 11, 1245184, 2, 11, 1245184, 3, 11, 1245184, 4, 11, 1245184, 5, 11, 1245184, 6, 11, 1245184, 7, 11, 1245184, 8, 11, 1245184, 9, 11, 1245184, 10, 11, 1245184, 11, 11, 1245184, 12, 11, 1245184, 13, 11, 1245184, 14, 11, 1245184, 15, 11, 1245184, 16, 11, 1245184, 17, 11, 1245184, 18, 11, 1245184, 19, 11, 1245184, 20, 11, 1245184, 21, 11, 1245184, 22, 11, 1245184, 23, 11, 1245184, 24, 11, 1245184, 25, 11, 1245184, 26, 11, 1245184, 27, 11, 1245184, 28, 11, 1245184, 29, 11, 1245184, 30, 11, 1245184, 31, 11, 1245184, 32, 11, 1245184, 33, 11, 1245184, 34, 11, 1245184, 36, 11, 1245184, 37, 11, 1245184, 38, 11, 1245184, 39, 11, 1245184, 35, 11, 1245184)
"cells": PackedInt32Array(12, 10, 16, 11, 10, 16, 5, 10, 16, 4, 10, 16, 3, 10, 16, 0, 65535, 16, 1, 65535, 16, 2, 65535, 16, 3, 65535, 16, 4, 65535, 16, 5, 65535, 16, 6, 65535, 16, 7, 65535, 16, 8, 65535, 16, 9, 65535, 16, 12, 65535, 16, 13, 65535, 16, 14, 65535, 16, 15, 65535, 16, 16, 65535, 16, 17, 65535, 16, 18, 65535, 16, 19, 65535, 16, 10, 65535, 16, 11, 65535, 16, 20, 65535, 16, 21, 65535, 16, 22, 65535, 16, 23, 65535, 16, 24, 65535, 16, 25, 65535, 16, 26, 65535, 16, 27, 65535, 16, 28, 65535, 16, 29, 65535, 16, 30, 65535, 16, 31, 65535, 16, 32, 65535, 16, 33, 65535, 16, 34, 65535, 16, 35, 65535, 16, 36, 65535, 16, 37, 65535, 16, 38, 65535, 16, 39, 65535, 16, 39, 0, 16, 39, 1, 16, 39, 2, 16, 39, 3, 16, 39, 7, 16, 39, 8, 16, 39, 9, 16, 39, 10, 16, 38, 10, 16, 37, 10, 16, 36, 10, 16, 35, 10, 16, 34, 10, 16, 33, 10, 16, 32, 10, 16, 30, 10, 16, 29, 10, 16, 27, 10, 16, 26, 10, 16, 24, 10, 16, 39, 6, 16, 0, 10, 16, 1, 10, 16, 2, 10, 16, 13, 10, 16, 14, 10, 16, 15, 10, 16, 16, 10, 16, 17, 10, 16, 18, 10, 16, 19, 10, 16, 20, 10, 16, 21, 10, 16, 22, 10, 16, 23, 10, 16, 25, 10, 16, 28, 10, 16, 31, 10, 16, 6, 10, 16, 7, 10, 16, 8, 10, 16, 9, 10, 16, 10, 10, 16)
}
metadata/_editor_floor_ = Vector3(0, 0, 0)

@ -6,3 +6,5 @@ var level_mgr : LevelManager
#全局状态
var is_level_loading : bool
var is_level_loading_contorl : bool
var currlevel_name : String

@ -13,3 +13,4 @@ const drag_air : float = 5
#地图
const starting_level : String = "level01_forecourt.tscn"
const level_loading_min_time : float = 0.2
const level_loading_control_time : float = 0.2

@ -8,6 +8,7 @@ class_name Move
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
func _process(delta):
if Global.is_level_loading_contorl:return
if status.is_pause:return
var is_hit_floor = update_on_floor(delta)
update_speed_y(delta)

@ -5,4 +5,6 @@ extends Node3D
func _process(delta):
if Global.is_level_loading:
return
if Global.is_level_loading_contorl:
return
MetSys.set_player_position(character.pos2D())

@ -22,8 +22,8 @@ func _process(delta):
target_pos_lerp(0,delta,5)
target_pos_lerp(1,delta,5)
position.x = target_pos_now.x
position.z = target_pos_now.y + offset
position.y = offset
position.z = target_pos_now.y + target_pos_y + offset
position.y = target_pos_y + offset
func target_pos_lerp(index:int,delta:float,delta_scale:float):
var diff = abs(target_pos_now[index] - target_pos[index])
@ -43,14 +43,17 @@ func on_character_create(id:int,team:Enum.ETeam,pos:Vector3):
func on_character_pos_changed(id:int,pos:Vector3):
if id == target:
target_pos.x = clamp(pos.x,camera_limit.x,level_size.x-camera_limit.x)
target_pos.y = clamp(pos.z-target_pos_y,camera_limit.y,level_size.y-camera_limit.z)
set_target_pos(pos)
func on_character_hit_floor(id:int,pos:Vector3):
if id == target:
target_pos_y = pos.y
target_pos.y = clamp(pos.z-target_pos_y,camera_limit.y,level_size.y-camera_limit.z)
set_target_pos(pos)
func set_target_pos(pos:Vector3):
target_pos.x = clamp(pos.x,camera_limit.x,level_size.x-camera_limit.x)
target_pos.y = clamp(pos.z-target_pos_y,camera_limit.y-target_pos_y,level_size.y-camera_limit.z-target_pos_y)
func on_character_destroy(id:int):target = 0
func on_level_size_change(size:Vector2):level_size = size

@ -5,6 +5,7 @@ class_name LevelManager
var level: Node3D
var level_path : String
var load_time : float
var load_control_time : float
func _ready():
Global.level_mgr = self
@ -15,17 +16,23 @@ func init():
MetSys.room_changed.connect(on_room_changed)
func _process(delta):
if not Global.is_level_loading:
return
if load_time > 0:
load_time -= delta
return
var status = ResourceLoader.load_threaded_get_status(level_path)
match status:
ResourceLoader.ThreadLoadStatus.THREAD_LOAD_IN_PROGRESS:return
ResourceLoader.ThreadLoadStatus.THREAD_LOAD_LOADED:pass
_:print("关卡加载错误");return
goto_level_end()
if Global.is_level_loading:
if load_time > 0:
load_time -= delta
return
var status = ResourceLoader.load_threaded_get_status(level_path)
match status:
ResourceLoader.ThreadLoadStatus.THREAD_LOAD_IN_PROGRESS:return
ResourceLoader.ThreadLoadStatus.THREAD_LOAD_LOADED:pass
_:print("关卡加载错误");return
goto_level_end()
Global.is_level_loading_contorl = true
load_control_time = Setting.level_loading_control_time
elif Global.is_level_loading_contorl:
if load_control_time > 0:
load_control_time -= delta
return
Global.is_level_loading_contorl = false
func on_room_changed(target_level: String):
goto_level(MetSys.get_full_room_path(target_level))
@ -68,4 +75,5 @@ func goto_level_end():
player.set_pos(pos_pre)
Global.is_level_loading = false
Global.currlevel_name = level_path
SignalManager.level_loading_end.emit()

Loading…
Cancel
Save