Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
N
November 2021 Blimp Competition
Manage
Activity
Members
Labels
Plan
Issues
2
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package Registry
Container Registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Shahrul Kamil bin Hassan
November 2021 Blimp Competition
Commits
c697afce
Commit
c697afce
authored
3 years ago
by
Zhaoliang Zheng
Browse files
Options
Downloads
Patches
Plain Diff
test the joystick mapping
parent
3822cc82
Branches
Branches containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Code/Control/Laptop_Code/joystick/controller_test.py
+147
-0
147 additions, 0 deletions
Code/Control/Laptop_Code/joystick/controller_test.py
with
147 additions
and
0 deletions
Code/Control/Laptop_Code/joystick/controller_test.py
0 → 100644
+
147
−
0
View file @
c697afce
import
pygame
# Define some colors
BLACK
=
(
0
,
0
,
0
)
WHITE
=
(
255
,
255
,
255
)
class
TextPrint
(
object
):
"""
This is a simple class that will help us print to the screen
It has nothing to do with the joysticks, just outputting the
information.
"""
def
__init__
(
self
):
"""
Constructor
"""
self
.
reset
()
self
.
x_pos
=
10
self
.
y_pos
=
10
self
.
font
=
pygame
.
font
.
Font
(
None
,
20
)
def
print
(
self
,
my_screen
,
text_string
):
"""
Draw text onto the screen.
"""
text_bitmap
=
self
.
font
.
render
(
text_string
,
True
,
BLACK
)
my_screen
.
blit
(
text_bitmap
,
[
self
.
x_pos
,
self
.
y_pos
])
self
.
y_pos
+=
self
.
line_height
def
reset
(
self
):
"""
Reset text to the top of the screen.
"""
self
.
x_pos
=
10
self
.
y_pos
=
10
self
.
line_height
=
15
def
indent
(
self
):
"""
Indent the next line of text
"""
self
.
x_pos
+=
10
def
unindent
(
self
):
"""
Unindent the next line of text
"""
self
.
x_pos
-=
10
if
__name__
==
'
__main__
'
:
pygame
.
init
()
# Set the width and height of the screen [width,height]
size
=
[
500
,
700
]
screen
=
pygame
.
display
.
set_mode
(
size
)
pygame
.
display
.
set_caption
(
"
My Game
"
)
# Loop until the user clicks the close button.
done
=
False
# Used to manage how fast the screen updates
clock
=
pygame
.
time
.
Clock
()
# Initialize the joysticks
pygame
.
joystick
.
init
()
# Get ready to print
textPrint
=
TextPrint
()
# -------- Main Program Loop -----------
while
not
done
:
# EVENT PROCESSING STEP
for
event
in
pygame
.
event
.
get
():
if
event
.
type
==
pygame
.
QUIT
:
done
=
True
# Possible joystick actions: JOYAXISMOTION JOYBALLMOTION JOYBUTTONDOWN
# JOYBUTTONUP JOYHATMOTION
if
event
.
type
==
pygame
.
JOYBUTTONDOWN
:
print
(
"
Joystick button pressed.
"
)
if
event
.
type
==
pygame
.
JOYBUTTONUP
:
print
(
"
Joystick button released.
"
)
# DRAWING STEP
# First, clear the screen to white. Don't put other drawing commands
# above this, or they will be erased with this command.
screen
.
fill
(
WHITE
)
textPrint
.
reset
()
# Get count of joysticks
joystick_count
=
pygame
.
joystick
.
get_count
()
textPrint
.
print
(
screen
,
"
Number of joysticks: {}
"
.
format
(
joystick_count
))
textPrint
.
indent
()
# For each joystick:
for
i
in
range
(
joystick_count
):
joystick
=
pygame
.
joystick
.
Joystick
(
i
)
joystick
.
init
()
textPrint
.
print
(
screen
,
"
Joystick {}
"
.
format
(
i
))
textPrint
.
indent
()
# Get the name from the OS for the controller/joystick
name
=
joystick
.
get_name
()
textPrint
.
print
(
screen
,
"
Joystick name: {}
"
.
format
(
name
))
# Usually axis run in pairs, up/down for one, and left/right for
# the other.
axes
=
joystick
.
get_numaxes
()
textPrint
.
print
(
screen
,
"
Number of axes: {}
"
.
format
(
axes
))
textPrint
.
indent
()
for
i
in
range
(
axes
):
axis
=
joystick
.
get_axis
(
i
)
print
(
"
{:>1.0f}
"
.
format
(
axis
))
textPrint
.
print
(
screen
,
"
Axis {} value: {:>6.3f}
"
.
format
(
i
,
axis
))
textPrint
.
unindent
()
buttons
=
joystick
.
get_numbuttons
()
textPrint
.
print
(
screen
,
"
Number of buttons: {}
"
.
format
(
buttons
))
textPrint
.
indent
()
for
i
in
range
(
buttons
):
button
=
joystick
.
get_button
(
i
)
textPrint
.
print
(
screen
,
"
Button {:>2} value: {}
"
.
format
(
i
,
button
))
textPrint
.
unindent
()
# Hat switch. All or nothing for direction, not like joysticks.
# Value comes back in an array.
hats
=
joystick
.
get_numhats
()
textPrint
.
print
(
screen
,
"
Number of hats: {}
"
.
format
(
hats
))
textPrint
.
indent
()
for
i
in
range
(
hats
):
hat
=
joystick
.
get_hat
(
i
)
textPrint
.
print
(
screen
,
"
Hat {} value: {}
"
.
format
(
i
,
str
(
hat
)))
textPrint
.
unindent
()
textPrint
.
unindent
()
# ALL CODE TO DRAW SHOULD GO ABOVE THIS COMMENT
# Go ahead and update the screen with what we've drawn.
pygame
.
display
.
flip
()
# Limit to 60 frames per second
clock
.
tick
(
60
)
# Close the window and quit.
# If you forget this line, the program will 'hang'
# on exit if running from IDLE.
pygame
.
quit
()
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment