Untitled

 avatar
unknown
plain_text
2 years ago
3.5 kB
4
Indexable
import pygame
import time
from datetime import datetime

def main():
    pygame.init()

    # Initialize the gamepad
    pygame.joystick.init()

    # Check if any joystick is connected
    if pygame.joystick.get_count() == 0:
        print("No joystick/gamepad found.")
        return

    # Initialize the first joystick
    gamepad = pygame.joystick.Joystick(0)
    gamepad.init()

    print(f"Joystick name: {gamepad.get_name()}")
    print(f"Number of axes: {gamepad.get_numaxes()}")
    print(f"Number of buttons: {gamepad.get_numbuttons()}")
    joysticks = {}

    try:

        vibrate = [False, False]
        vibrate_other = [False, False]

        while True:
            for event in pygame.event.get():

                if event.type == pygame.JOYBUTTONDOWN:
                    gamepad = joysticks[event.instance_id]
                    other_gamepad = joysticks[1 - event.instance_id]

                    now = datetime.now()
                    print(now, "----", event)

                    if event.button == 0:
                        if vibrate[gamepad.get_instance_id()]:
                            gamepad.rumble(0, 0.7, 100)
                        if vibrate_other[gamepad.get_instance_id()]:
                            other_gamepad.rumble(0, 0.7, 100)
                        print(f"A")

                    elif event.button == 1:
                        if vibrate[gamepad.get_instance_id()]:
                            gamepad.rumble(0, 1, 100)
                        if vibrate_other[gamepad.get_instance_id()]:
                            other_gamepad.rumble(0, 1, 100)
                        print("B")

                    elif event.button == 2:
                        if vibrate[gamepad.get_instance_id()]:
                            gamepad.rumble(1, 1, 10)
                        if vibrate_other[gamepad.get_instance_id()]:
                            other_gamepad.rumble(1, 1, 10)
                        print("X")

                    elif event.button == 3:
                        if vibrate[gamepad.get_instance_id()]:
                            gamepad.rumble(0, 0.1, 100)
                        if vibrate_other[gamepad.get_instance_id()]:
                            other_gamepad.rumble(0, 0.1, 100)
                        print("Y")

                    elif event.button == 10:
                        print(gamepad.get_instance_id())
                        vibrate[gamepad.get_instance_id()] = not vibrate[gamepad.get_instance_id()]
                        print("R1 ", vibrate[gamepad.get_instance_id()])

                    elif event.button == 9:
                        vibrate_other[gamepad.get_instance_id()] = not vibrate_other[gamepad.get_instance_id()]
                        print("L1 ", vibrate_other[gamepad.get_instance_id()])

                if event.type == pygame.JOYDEVICEADDED:
                    # This event will be generated when the program starts for every
                    # joystick, filling up the list without needing to create them manually.
                    joy = pygame.joystick.Joystick(event.device_index)
                    joysticks[joy.get_instance_id()] = joy
                    print(f"Joystick {joy.get_instance_id()} connencted")

                if event.type == pygame.JOYDEVICEREMOVED:
                    print(f"Joystick {event.device_index} disconnected")
                    joy = pygame.joystick.Joystick(event.device_index)

    except KeyboardInterrupt:
        pygame.quit()

if __name__ == "__main__":
    main()
Editor is loading...
Leave a Comment