源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

58 行
1.1 KiB

  1. require("gameinput.KeyInput")
  2. require("gameinput.MouseInput")
  3. require("gameinput.GestureConfig")
  4. GameInputManager = GameInputManager or BaseClass()
  5. local GameInputManager = GameInputManager
  6. local os = os
  7. GameInputManager.GameInputEvent = {
  8. MOUSE_PRESS = "MOUSE_PRESS",
  9. MOUSE_MOVE = "MOUSE_MOVE",
  10. MOUSE_RELEASE = "MOUSE_RELEASE",
  11. }
  12. function GameInputManager:__init()
  13. GameInputManager.Instance = self
  14. self.key_input = KeyInput.New()
  15. self.mouse_input = MouseInput.New()
  16. Runner.Instance:AddRunObj(self)
  17. self.update_interval = 0.3
  18. self.last_update = os.clock()
  19. self.is_update_interval = false
  20. end
  21. function GameInputManager:Update()
  22. if not self.is_update_interval and os.clock() - self.last_update < self.update_interval then
  23. return
  24. end
  25. self.is_update_interval = true
  26. KeyInput.Update(self.key_input)
  27. if self.mouse_input then
  28. MouseInput.Update(self.mouse_input)
  29. end
  30. end
  31. function GameInputManager:GetKeyInput()
  32. return self.key_input
  33. end
  34. function GameInputManager:GetMouseInput()
  35. return self.mouse_input
  36. end
  37. function GameInputManager:__delete()
  38. self.key_input:DeleteMe()
  39. if self.mouse_input then
  40. self.mouse_input:DeleteMe()
  41. end
  42. end