Hallo Niki,
mir ist aufgefallen, dass nicht alle files auf dem github sind, aber das ist nur nebensächlich.
Du musst für diesen Fall etwas umbauen wobei ich auch nicht sicher bin ob folgendes der best case ist, von Xbox Controllern weiß ich das die events kontinuierlich abgefeuert werden. Das macht meiner Meinung nach auch Sinn um bei X & Y Axis möglichst genaue angaben zu machen.
Hier möchte ich aber nur eine einfache Variante aufzeigen.
Folgendes, wenn jemand den KEYPRESS Event feuert dann musst du solange die Aktion ausführen bis der User ein KEYUP (oder eine andere Aktion) tätigt und dann stoppst du die Aktion.
Hier ein Beispiel zur Veranschaulichung (das ist nicht perfekt ich habe es selbst kopiert. Z.B. möchte man wahrscheinlich auch dass pressed_left = false ist wenn der user nach rechts läuft!!!):
while True:
# event loop
for event in pygame.event.get():
#Hier die Action die dann unabhängig vom KeyEvent getriggert wird mit doAction
doAction()
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN: # check for key presses
if event.key == pygame.K_LEFT: # left arrow turns left
pressed_left = True
elif event.key == pygame.K_RIGHT: # right arrow turns right
pressed_right = True
elif event.key == pygame.K_UP: # up arrow goes up
pressed_up = True
elif event.key == pygame.K_DOWN: # down arrow goes down
pressed_down = True
elif event.type == pygame.KEYUP: # check for key releases
if event.key == pygame.K_LEFT: # left arrow turns left
pressed_left = False
elif event.key == pygame.K_RIGHT: # right arrow turns right
pressed_right = False
elif event.key == pygame.K_UP: # up arrow goes up
pressed_up = False
elif event.key == pygame.K_DOWN: # down arrow goes down
pressed_down = False
def doAction(self):
if self.PressedLeft:
manx -= 10