源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

61 lines
2.0 KiB

--[[@------------------------------------------------------------------
说明: 控制人物跳跃移动一个小Tip的操作包
作者: deadline
----------------------------------------------------------------------]]
NowOperateJump = NowOperateJump or BaseClass(NowOperate)
local NowOperateJump = NowOperateJump
function NowOperateJump:__init(start_time, start_pos, end_pos, is_last_tip)
self.type = OperateManager.OperateType.Move
self.start_pos = start_pos
self.end_pos = end_pos
self.is_end = false
self.move_end_handle = nil
self.is_already_do_jump = false --是否已经执行移动操作
end
function NowOperateJump:__delete()
if self.move_end_handle ~= nil then
EventSystem.UnBind(GlobalEventSystem,self.move_end_handle)
end
if self.change_scene_handle then
EventSystem.UnBind(GlobalEventSystem,self.change_scene_handle)
end
end
function NowOperateJump:Init()
--先检测能否立即移动再执行该操作
self:DoJumpAction()
return true
end
function NowOperateJump:DoJumpAction( )
self.is_already_do_jump = true
--监听主角移动结束
local move_end_callback = function ( tip_count )
self.is_end = true
EventSystem.UnBind(GlobalEventSystem,self.move_end_handle)
self.move_end_handle = nil
end
--切换场景的时候,也要结束当前操作包
local change_scene_func = function()
self.is_end = true
EventSystem.UnBind(GlobalEventSystem,self.change_scene_handle)
self.change_scene_handle = nil
end
-- self.move_end_handle = GlobalEventSystem:Bind(SceneEventType.MAIN_ROLE_JUMP_END, move_end_callback)
self.change_scene_handle = EventSystem.Bind(GlobalEventSystem,SceneManager.START, change_scene_func)
local target_p = co.Vector2(self.end_pos.x*SceneObj.LogicRealRatio.x,self.end_pos.y*SceneObj.LogicRealRatio.y)
Scene.Instance:GetMainRole():DoJump(target_p, true)
end
function NowOperateJump:ExcuteImpl(elaspe_time)
--如果还未执行移动操作,则在合适的时间执行该操作
if not self.is_already_do_jump then
self:DoJumpAction()
end
return self.is_end
end