require("gameinput.KeyInput") require("gameinput.MouseInput") require("gameinput.GestureConfig") GameInputManager = GameInputManager or BaseClass() local GameInputManager = GameInputManager local os = os GameInputManager.GameInputEvent = { MOUSE_PRESS = "MOUSE_PRESS", MOUSE_MOVE = "MOUSE_MOVE", MOUSE_RELEASE = "MOUSE_RELEASE", } function GameInputManager:__init() GameInputManager.Instance = self self.key_input = KeyInput.New() self.mouse_input = MouseInput.New() Runner.Instance:AddRunObj(self) self.update_interval = 0.3 self.last_update = os.clock() self.is_update_interval = false end function GameInputManager:Update() if not self.is_update_interval and os.clock() - self.last_update < self.update_interval then return end self.is_update_interval = true KeyInput.Update(self.key_input) if self.mouse_input then MouseInput.Update(self.mouse_input) end end function GameInputManager:GetKeyInput() return self.key_input end function GameInputManager:GetMouseInput() return self.mouse_input end function GameInputManager:__delete() self.key_input:DeleteMe() if self.mouse_input then self.mouse_input:DeleteMe() end end