Select Git revision
arrays-pointers-19.c
steering_wheel.py 1.63 KiB
""" Steering wheel """
import pygame
DIRECTION=0
SPEED=1
BREAKS=2
INPUTS=3
OFFSET = 2.0
class ManualSteeringWheel:
""" Steering wheel """
axis_count = 0
joystick = None
direction = 0
speed = 0
breaks = 0
def __init__(self):
pygame.init()
self.joystick = pygame.joystick.Joystick(0)
self.joystick.init()
self.axis_count = self.joystick.get_numaxes()
def get_direction(self, update=True):
""" Update and return direction. """
if update:
pygame.event.get()
self.direction = self.joystick.get_axis(DIRECTION)
return self.direction
def get_speed(self, update=True):
""" Update and return speed."""
if update:
pygame.event.get()
self.speed = (OFFSET - (self.joystick.get_axis(SPEED) + 1.0)) / OFFSET
return self.speed
def get_breaks(self, update=True):
""" Update and return breaks. """
if update:
pygame.event.get()
self.breaks = (OFFSET - (self.joystick.get_axis(BREAKS) + 1.0)) / OFFSET
return self.breaks
def on_update(self):
""" Poll for pygame events. """
pygame.event.get()
self.get_direction(update=False)
self.get_speed(update=False)
self.get_breaks(update=False)
if __name__ == '__main__':
clock = pygame.time.Clock()
sw = ManualSteeringWheel()
while True:
# Receive all occured events
print("")
print("Direction: " + str(sw.get_direction()))
print("Speed: " + str(sw.get_speed()))
print("Breaks: " + str(sw.get_breaks()))
clock.tick(2)