Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
73
Task/Joystick-position/Python/joystick-position.py
Normal file
73
Task/Joystick-position/Python/joystick-position.py
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
import sys
|
||||
import pygame
|
||||
|
||||
pygame.init()
|
||||
|
||||
# Create a clock (for framerating)
|
||||
clk = pygame.time.Clock()
|
||||
|
||||
# Grab joystick 0
|
||||
if pygame.joystick.get_count() == 0:
|
||||
raise IOError("No joystick detected")
|
||||
joy = pygame.joystick.Joystick(0)
|
||||
joy.init()
|
||||
|
||||
# Create display
|
||||
size = width, height = 600, 600
|
||||
screen = pygame.display.set_mode(size)
|
||||
pygame.display.set_caption("Joystick Tester")
|
||||
|
||||
# Frame XHair zone
|
||||
frameRect = pygame.Rect((45, 45), (510, 510))
|
||||
|
||||
# Generate crosshair
|
||||
crosshair = pygame.surface.Surface((10, 10))
|
||||
crosshair.fill(pygame.Color("magenta"))
|
||||
pygame.draw.circle(crosshair, pygame.Color("blue"), (5,5), 5, 0)
|
||||
crosshair.set_colorkey(pygame.Color("magenta"), pygame.RLEACCEL)
|
||||
crosshair = crosshair.convert()
|
||||
|
||||
# Generate button surfaces
|
||||
writer = pygame.font.Font(pygame.font.get_default_font(), 15)
|
||||
buttons = {}
|
||||
for b in range(joy.get_numbuttons()):
|
||||
buttons[b] = [
|
||||
writer.render(
|
||||
hex(b)[2:].upper(),
|
||||
1,
|
||||
pygame.Color("red"),
|
||||
pygame.Color("black")
|
||||
).convert(),
|
||||
# Get co-ords: ((width*slot)+offset, offset). Offsets chosen
|
||||
# to match frames.
|
||||
((15*b)+45, 560)
|
||||
]
|
||||
|
||||
while True:
|
||||
# Pump and check the events queue
|
||||
pygame.event.pump()
|
||||
for events in pygame.event.get():
|
||||
if events.type == pygame.QUIT:
|
||||
pygame.quit()
|
||||
sys.exit()
|
||||
|
||||
# Black the screen
|
||||
screen.fill(pygame.Color("black"))
|
||||
|
||||
# Get joystick axes
|
||||
x = joy.get_axis(0)
|
||||
y = joy.get_axis(1)
|
||||
|
||||
# Blit to the needed coords:
|
||||
# x*amplitude+(centre offset (window size/2))-(xhair offset (xh size/2))
|
||||
screen.blit(crosshair, ((x*250)+300-5, (y*250)+300-5))
|
||||
pygame.draw.rect(screen, pygame.Color("red"), frameRect, 1)
|
||||
|
||||
# Get and display the joystick buttons
|
||||
for b in range(joy.get_numbuttons()):
|
||||
if joy.get_button(b):
|
||||
screen.blit(buttons[b][0], buttons[b][1])
|
||||
|
||||
# Write the display
|
||||
pygame.display.flip()
|
||||
clk.tick(40) # Limit to <=40 FPS
|
||||
Loading…
Add table
Add a link
Reference in a new issue