|
--[[@------------------------------------------------------------------
|
|
说明: 控制人物跳跃移动一个小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
|