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.
UniWeb now includes a tiny embedded web server which you can use to do crazy things. That is all.
So, you've created a car prefab using WheelCollider components, and now you can apply a motorTorque to make the whole thing move along. ...
I've been working on something new. I get a lot of projects where I have to add multiuser functionality. Finally I've made the jump ...
As part of my quest to create amazing procedural spacecraft, I made a greebling tool for Unity. Here are the before and after screengrabs. ...
In my efforts to write a malloc-free network library for Unity3D, I discovered that BinaryReader and BinaryWriter perform malloc operations ...
I use the var keyword everywhere. Someone told me today that this is a bad practice, because "sometimes you can't tell what type it...
I recently acquired an Oculus Rift. It was easy to integrate into one of my existing projects, however during testing, I discovered Unity ...
I applied the greeble system to another spacecraft shell, trying to make some kind of freighter. This highlighted a few issues. Greeble...
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...