game.py 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import pyautogui
  2. import time
  3. import importlib
  4. import traceback, logging
  5. from utils.common import Common
  6. from utils.logger import Configure_logger
  7. from utils.config import Config
  8. class Game:
  9. def __init__(self, config_path, data):
  10. self.config = Config(config_path)
  11. self.common = Common()
  12. try:
  13. self.module_name = importlib.import_module(data["module_name"])
  14. except Exception as e:
  15. logging.error(traceback.format_exc())
  16. raise e
  17. # 解析字符串,模拟按键/鼠标按压
  18. def parse_key_and_simulate_key_mouse_press(self, key):
  19. self.module_name.parse_key_and_simulate_key_mouse_press(key)
  20. # 解析字符串数组,根据字符串第一位判断是否需要转换按键后,按压按键
  21. def parse_keys_and_simulate_keys_press(self, keys):
  22. self.module_name.parse_keys_and_simulate_keys_press(keys)
  23. # 模拟按键按下后释放,传入字符串数组
  24. def simulate_key_press(self, keys):
  25. # 模拟按下释放按键
  26. for key in keys:
  27. pyautogui.keyDown(key)
  28. time.sleep(0.1)
  29. pyautogui.keyUp(key)
  30. # 解析字符串数组,根据字符串第一位判断是否需要转换按键后,按压按键
  31. def parse_keys_and_simulate_key_press(self, keys):
  32. # 删除数组中非 w a s d 1 2 3 的其他字符串
  33. def remove_needless(keys):
  34. for i in range(len(keys)):
  35. if keys[i] not in ['w', 'a', 's', 'd', '1', '2', '3']:
  36. keys.pop(i)
  37. return keys
  38. if keys[0] == '1':
  39. keys = keys[1:]
  40. keys = remove_needless(keys)
  41. # 遍历数组,将123改为yui
  42. for i in range(len(keys)):
  43. if keys[i] == '1':
  44. keys[i] = 'y'
  45. elif keys[i] == '2':
  46. keys[i] = 'u'
  47. elif keys[i] == '3':
  48. keys[i] = 'i'
  49. elif keys[0] == '2':
  50. keys = keys[1:]
  51. keys = remove_needless(keys)
  52. # 遍历数组,将wsad改为上下左右,123改为789
  53. for i in range(len(keys)):
  54. if keys[i] == 'w':
  55. keys[i] = 'up'
  56. elif keys[i] == 's':
  57. keys[i] = 'down'
  58. elif keys[i] == 'a':
  59. keys[i] = 'left'
  60. elif keys[i] == 'd':
  61. keys[i] = 'right'
  62. elif keys[i] == '1':
  63. keys[i] = '7'
  64. elif keys[i] == '2':
  65. keys[i] = '8'
  66. elif keys[i] == '3':
  67. keys[i] = '9'
  68. self.simulate_key_press(keys)