|
|
-
- 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
|