源战役客户端
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.
 
 
 
 
 

170 rivejä
4.3 KiB

MouseInput = MouseInput or BaseClass()
local MouseInput = MouseInput
local Input = Input
local os = os
local TouchPhase = TouchPhase
function MouseInput:__init()
self.press_time = 0
self.press_view_point = Vector2(0, 0)
self.press_world_point = Vector2(0, 0)
self.press_accept = false
self.release_point = Vector2(0, 0)
self.cur_exit_time = -1
local func = function(hide)
if SystemRuntimePlatform.IsAndroid() or SystemRuntimePlatform.IsIphone() then
self.cur_exit_time = os.time()
--切回游戏设置锁屏亮度
if not hide then
if self.last_bright then
SDKUtil.SetBright(5)
end
else
--切到桌面恢复手机亮度
if self.last_bright then
SDKUtil.SetBright(self.last_bright)
end
end
end
end
GlobalEventSystem:Bind(SceneEventType.GAME_FOCUS_OR_PAUSE,func)
local add_func = function()
self:NormalScreenBright()
end
GlobalEventSystem:Bind(SceneEventType.SCREEN_BRIGHT_ADD_EVENT,add_func)
if SystemRuntimePlatform.IsWindows() then
self.is_window_system = true
end
local callfunc = function(module_name,func)
if module_name == "mouseinput" then
if func == "settime" then
self.cur_exit_time = os.time() - 175
self.last_bright = nil
GlobalEventSystem:Fire(SceneEventType.SCREEN_BRIGHT_DEL_EVENT)
end
end
end
GlobalEventSystem:Bind(EventName.DO_MODULE_DEBUG_FUNC,callfunc)
end
function MouseInput:touch_begin_func_pri()
GlobalUserOperateTime = Time.time
GlobalEventSystem:Fire(GameInputManager.GameInputEvent.MOUSE_PRESS, screen_pos)
if Status.NowTime - self.press_time < 0.3 then
return
end
self.press_view_point = screen_pos
self.press_time = Status.NowTime
self.press_accept = true
--GlobalEventSystem:Fire(SceneEventType.MAIN_ROLE_MOUSE_DOWN, screen_pos)
end
function MouseInput:touch_moved_func_pri()
if self.fire_move_time == nil or self.fire_move_time ~= Status.NowTime then
self.fire_move_time = Status.NowTime
GlobalEventSystem:Fire(GameInputManager.GameInputEvent.MOUSE_MOVE, screen_pos)
end
end
function MouseInput:touch_ended_func_pri()
GlobalEventSystem:Fire(GameInputManager.GameInputEvent.MOUSE_RELEASE, screen_pos)
if not self.press_accept then
return
end
self.press_accept = false
self:HandleMouseInput(screen_pos)
end
function MouseInput:NormalScreenBright()
if self.last_bright then
SDKUtil.SetBright(self.last_bright)
self.last_bright = nil
end
-- if not lua_viewM.main_cancas_last_visible then
SetGameFrameRate()
-- else
-- SetGameFrameRate()
-- end
end
function MouseInput:CheckClick(pos)
self:touch_begin_func_pri(pos)
self.cur_exit_time = os.time()
if self.last_bright then
self:NormalScreenBright()
end
end
function MouseInput:Update()
if Input.touchCount > 0 then
local pos = Input.GetTouch(0).position
local cur_state = Input.GetTouch(0).phase
if cur_state == TouchPhase.Began then -- 按下
self:CheckClick(pos)
elseif cur_state == TouchPhase.Moved then
self:touch_moved_func_pri(pos)
elseif cur_state == TouchPhase.Stationary then --手指静止在屏幕
elseif cur_state == TouchPhase.Ended then
self:touch_ended_func_pri(pos)
self.cur_exit_time = os.time()
elseif cur_state == TouchPhase.Canceled then --当超过五个点触摸时,系统取消响应
end
end
if self.is_window_system and ( Input.GetMouseButtonDown(0) or Input.GetMouseButton(0)) then
self:CheckClick()
end
-- if self.last_bright == nil and self.cur_exit_time ~= -1 and os.time() - self.cur_exit_time > 180 then
-- self.last_bright = SDKUtil.CallIntFunc( "SystemBright", "GetBright", "" )
-- local bright = 5
-- if SystemRuntimePlatform.IsIphone() then
-- bright = 15
-- end
-- SDKUtil.SetBright(bright)
-- if SceneManager and SceneManager:getInstance().curr_scene_id > 0 then
-- GlobalEventSystem:Fire(SceneEventType.SCREEN_BRIGHT_DEL_EVENT)
-- end
-- SetGameFrameRate(30)
-- end
end
function MouseInput:HandleMouseInput(screen_pos)
--[[
local move_dir = screen_pos - self.press_view_point
local distance = move_dir:Distance()
if distance > 120 then
if move_dir.y < -0.5 then
--手指上滑
elseif move_dir.y > 0.5 then
--手指下滑
end
return
end
GlobalEventSystem:Fire(EventName.SCREEN_CLICK, screen_pos)
]]
end
function MouseInput:SetEnable(value)
end
function MouseInput:__delete()
end