Added gamepad movement. /JL
This commit is contained in:
80
pygameController/logitech_dual_action_controller.py
Normal file
80
pygameController/logitech_dual_action_controller.py
Normal file
@@ -0,0 +1,80 @@
|
||||
"""
|
||||
Logitech F310 Controller class.
|
||||
This controller is a usb controller, with the following features.
|
||||
(XInput mode)
|
||||
6 axis
|
||||
11 buttons
|
||||
1 hat
|
||||
|
||||
(DirectInput mode)
|
||||
4 axis
|
||||
12 buttons
|
||||
1 hat
|
||||
"""
|
||||
|
||||
import pygame
|
||||
from pygameController.controlsbase import ControlsBase
|
||||
from enum import Enum
|
||||
|
||||
class InputMode(Enum):
|
||||
DirectInput = 1
|
||||
XInput = 2
|
||||
|
||||
class LogitechDualActionController(ControlsBase):
|
||||
def __init__(self, joy):
|
||||
self.device = joy
|
||||
self.instance_id: int = self.device.get_instance_id()
|
||||
self.name = self.device.get_name()
|
||||
self.guid = self.device.get_guid()
|
||||
self.powerlevel = self.device.get_power_level()
|
||||
self.numaxis: int = self.device.get_numaxes()
|
||||
self.axis: list = [self.device.get_axis(a) for a in range(self.numaxis)]
|
||||
self.numhats: int = self.device.get_numhats()
|
||||
self.hats: list = [self.device.get_hat(h) for h in range(self.numhats)]
|
||||
self.numbuttons: int = self.device.get_numbuttons()
|
||||
self.buttons: list = [self.device.get_button(b) for b in range(self.numbuttons)]
|
||||
self.input_mode = InputMode.DirectInput
|
||||
print(f"{self.name} connected")
|
||||
print("GUID:", self.guid)
|
||||
print("Axis:", self.numaxis, self.axis)
|
||||
print("Hats:", self.numhats, self.hats)
|
||||
print("Buttons:", self.numbuttons, self.buttons)
|
||||
print("Input mode:", self.input_mode)
|
||||
|
||||
def handle_input(self, event):
|
||||
pass
|
||||
|
||||
def left(self):
|
||||
pass
|
||||
|
||||
def right(self):
|
||||
pass
|
||||
|
||||
def up(self):
|
||||
pass
|
||||
|
||||
def down(self):
|
||||
pass
|
||||
|
||||
def pause(self):
|
||||
pass
|
||||
|
||||
def rumble(self):
|
||||
pass
|
||||
|
||||
@property
|
||||
def name(self) -> str:
|
||||
return self._name
|
||||
|
||||
@name.setter
|
||||
def name(self, name: str) -> None:
|
||||
self._name = name
|
||||
|
||||
@property
|
||||
def input_mode(self) -> int:
|
||||
return self._inputmode
|
||||
|
||||
@input_mode.setter
|
||||
def input_mode(self, mode: int) -> None:
|
||||
self._inputmode = mode
|
||||
|
Reference in New Issue
Block a user