keys_def.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. # -*- coding: utf-8 -*-
  2. import pygame
  3. from pygame.locals import *
  4. from sys import exit
  5. import os
  6. import sys
  7. import config
  8. from config import CurKeySet ## read only
  9. def GetButtonsLayoutMode():
  10. lm = "xbox"
  11. try:
  12. with open(".buttonslayout", "r") as f:
  13. lm = f.read()
  14. except:
  15. None
  16. if lm not in ["xbox","snes"]:
  17. lm = "xbox"
  18. return lm
  19. def SetButtonsLayoutMode(mode):
  20. SetXYABButtons(mode)
  21. with open(".buttonslayout", "w") as f:
  22. f.write(mode)
  23. config.ButtonsLayout = mode
  24. def SetXYABButtons(mode):
  25. if mode == "snes":
  26. GameShell["Y"] = pygame.K_u
  27. GameShell["X"] = pygame.K_i
  28. GameShell["B"] = pygame.K_j
  29. GameShell["A"] = pygame.K_k
  30. else:
  31. GameShell["X"] = pygame.K_u
  32. GameShell["Y"] = pygame.K_i
  33. GameShell["A"] = pygame.K_j
  34. GameShell["B"] = pygame.K_k
  35. GameShell = {}
  36. GameShell["Up"] = pygame.K_UP
  37. GameShell["Down"] = pygame.K_DOWN
  38. GameShell["Left"] = pygame.K_LEFT
  39. GameShell["Right"]= pygame.K_RIGHT
  40. GameShell["Menu"] = pygame.K_ESCAPE
  41. SetXYABButtons(GetButtonsLayoutMode())
  42. GameShell["Select"] = pygame.K_SPACE
  43. GameShell["Start"] = pygame.K_RETURN
  44. GameShell["LK1"] = pygame.K_h
  45. GameShell["LK5"] = pygame.K_l
  46. GameShell["Backspace"] = pygame.K_BACKSPACE # Shift + Menu
  47. PC = {}
  48. PC["Up"] = pygame.K_UP
  49. PC["Down"] = pygame.K_DOWN
  50. PC["Left"] = pygame.K_LEFT
  51. PC["Right"] = pygame.K_RIGHT
  52. PC["Menu"] = pygame.K_ESCAPE
  53. PC["X"] = pygame.K_x
  54. PC["Y"] = pygame.K_y
  55. PC["A"] = pygame.K_a
  56. PC["B"] = pygame.K_b
  57. PC["Select"] = pygame.K_SPACE
  58. PC["Start"] = pygame.K_s
  59. PC["LK1"] = pygame.K_h
  60. PC["LK5"] = pygame.K_l
  61. PC["Backspace"] = pygame.K_BACKSPACE # Shift + Menu
  62. if CurKeySet == "PC":
  63. CurKeys = PC
  64. else:
  65. CurKeys = GameShell
  66. def IsKeyStartOrA(key):
  67. return key == CurKeys["Start"] or key == CurKeys["A"]
  68. def IsKeyMenuOrB(key):
  69. return key == CurKeys["Menu"] or key == CurKeys["B"]