from pyglet import event
if sys.platform == 'linux2':
from select import select
JS_EVENT_BUTTON = 0x01 #/* button pressed/released */
JS_EVENT_AXIS = 0x02 #/* joystick moved */
JS_EVENT_INIT = 0x80 #/* initial state of device */
JS_EVENT = "IhBB"
JS_EVENT_SIZE = struct.calcsize(JS_EVENT)
def __init__(self, device_number):
device = '/dev/input/js%s' % device_number
self.dev = open('/dev/input/js0')
r,w,e = select([self.dev],,, 0)
if self.dev not in r: return
evt = self.dev.read(self.JS_EVENT_SIZE)
time, value, type, number = struct.unpack(self.JS_EVENT, evt)
evt = type & ~self.JS_EVENT_INIT
if evt == self.JS_EVENT_AXIS:
self.dispatch_event('on_axis', number, value)
elif evt == self.JS_EVENT_BUTTON:
self.dispatch_event('on_button', number, value==1)
def on_axis(self, axis, value):
def on_button(self, button, pressed):
raise ImportError('Platform not supported (%s)' % sys.platform)
if __name__ == "__main__":
j = Joystick(0)
def on_button(button, pressed):
print 'button', button, pressed
def on_axis(axis, value):
print 'axis', axis, value
Friday, February 01, 2008
Pyglet + Joystick
I've written a pygletified Joystick class. I'm not sure I'm using dispatch_events correctly, but it seems to work. With some more work it could support OSX and Win32.
So, you've created a car prefab using WheelCollider components, and now you can apply a motorTorque to make the whole thing move along. ...
This script takes a screenshot and saves it to the user desktop. It has options to use an alpha background, and also upscale the image. Usef...
Step 1. Tell you team that everything must fit within 1920x1080 or 1024x768 or whatever resolution you like! Step 2. Surround all OnGUI met...
Summary: NodeJS wins. Test Program ab -n 10000 -c 5 http://localhost/ Gevent Code from gevent import wsgi class WebServer(object): ...
When you start working with threads in your Unity3D project, you will discover that many things need to be done in the main loop. For exampl...
Often, when building a game, you need to test if objects are colliding. The objects could be spaceships, rocks, mouse pointers, laser beams....
I think ER diagrams are very handy tools for designing data requirements for a game. I don't see them given away or even talked about (i...
Just 514 lines of code. Uses sockets only, no other dependencies. https://github.com/simonwittber/uniwebserver Example Component: [Req...
Working with multiple threads is often a necessary evil. This is how I do it safely inside a Unity3D component. There are only certain time...
Most Python coders know that the Global Interpreter Lock (GIL) in CPython effectively serializes execution of threaded programs, even on sys...