Fixed joystick rumble bug.

This commit is contained in:
JustinOros
2025-07-21 11:48:38 -07:00
parent 8936fb867f
commit 9d335cea79
+11 -2
View File
@@ -269,7 +269,7 @@ def game():
paused = False
paused_by_controller = False
player_dead = False
controller_active = controller is not None # Set active if controller connected
controller_active = False # Start assuming keyboard usage
def rumble(duration=300, strength=1.0):
if controller_active and controller and hasattr(controller, "rumble"):
@@ -290,6 +290,12 @@ def game():
if event.type == pygame.QUIT:
running = False
# Track input method for rumble control
if event.type in [pygame.JOYAXISMOTION, pygame.JOYBUTTONDOWN]:
controller_active = True
elif event.type in [pygame.KEYDOWN, pygame.MOUSEBUTTONDOWN]:
controller_active = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
paused = not paused
@@ -300,7 +306,6 @@ def game():
fire_projectile(player, projectiles)
if event.type == pygame.JOYBUTTONDOWN:
controller_active = True # Joystick input detected, activate rumble
# Button mapping notes:
# 7 or 6 = START buttons (pause/resume)
# 2 = X button (quit when paused)
@@ -317,6 +322,10 @@ def game():
if not paused and event.button == 1: # Left mouse button
fire_projectile(player, projectiles)
# Also check if keyboard movement keys are pressed, set controller_active to False
if keys[pygame.K_w] or keys[pygame.K_a] or keys[pygame.K_s] or keys[pygame.K_d]:
controller_active = False
if paused:
draw_pause_screen(paused_by_controller)
pygame.display.flip()