From 6c2e2eed3c34002c925c515f89582488469f2238 Mon Sep 17 00:00:00 2001 From: chendian <-> Date: Sat, 11 Nov 2023 03:47:47 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=B8=E6=9C=BA=20lerp=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/character/character.gd | 2 +- script/manager/camera_manager.gd | 9 +++++++++ script/manager/game_manager.gd | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/script/character/character.gd b/script/character/character.gd index 42ceae1..4accb17 100644 --- a/script/character/character.gd +++ b/script/character/character.gd @@ -52,7 +52,7 @@ func ui_pos()->Vector3:return position + status.ui_offset #==interface== func get_status(status_name:String):return status.get_status(status_name) func set_status(status_name:String,value):status.set_status(status_name,value) -func set_pos(pos:Vector3):position = pos +func set_pos(pos:Vector3):position = pos;SignalManager.character_pos_changed.emit(id(),pos()) func move_to(dir:Vector2):set_status("move_dir",dir) func move_stop():set_status("move_dir",Vector2.ZERO) func add_buff(buff_name:String,duration:float,ignore_pause:bool=false):buff.add_buff(buff_name,duration,ignore_pause) diff --git a/script/manager/camera_manager.gd b/script/manager/camera_manager.gd index cf0649d..ab69032 100644 --- a/script/manager/camera_manager.gd +++ b/script/manager/camera_manager.gd @@ -15,6 +15,7 @@ func _ready(): SignalManager.character_hit_floor.connect(on_character_hit_floor) SignalManager.character_destroy.connect(on_character_destroy) SignalManager.level_size_change.connect(on_level_size_change) + SignalManager.level_loading_end.connect(on_level_loading_end) func _physics_process(delta): target_pos_lerp(0,delta,5) @@ -31,6 +32,9 @@ func target_pos_lerp(index:int,delta:float,delta_scale:float): func on_character_create(id:int,team:Enum.ETeam,pos:Vector3): if team == Enum.ETeam.Player: target = id + on_character_pos_changed(id,pos) + on_character_hit_floor(id,pos) + on_level_loading_end() func on_character_pos_changed(id:int,pos:Vector3): if id == target: @@ -46,3 +50,8 @@ func on_character_destroy(id:int): func on_level_size_change(size:Vector2): level_size = size + +func on_level_loading_end(): + target_pos_now.x = target_pos.x + target_pos_now.y = target_pos.y + target_pos_now.z = target_pos.z diff --git a/script/manager/game_manager.gd b/script/manager/game_manager.gd index ff545f7..a2b0c85 100644 --- a/script/manager/game_manager.gd +++ b/script/manager/game_manager.gd @@ -5,6 +5,6 @@ func _ready(): Global.level_mgr.init() Global.character_mgr.create_character(ResourceManager.cfg_character_player,Enum.ETeam.Player,Vector3(5,0,5)) Global.character_mgr.create_character(ResourceManager.cfg_character_monster_test,Enum.ETeam.Monster,Vector3(5.5,0,5)) - + func _process(delta): pass