PDA

View Full Version : switch statement


vrlab
08-04-2004, 10:22 AM
Hello,

I am trying to write a switch statement in my vizard script. I am using version 2.1 and I found on the internet that version 2.3 supports the switch function. This is the switch part of my script:

elif num == WAIT_BUTTON1:
data = sid.get()
buttonstate = sid.buttons()
switch(buttonstate):
case 'one':
if buttonstate == sid.BUTTON1:
button1 = 1

case 'two':
if buttonstate == sid.BUTTON2:
button2 = 2

case 'three':
if buttonstate == sid.BUTTON3:
button3 = 3

case 'four':
if buttonstate == sid.BUTTON4:
button4 = 4

case 'five':
if data[2] == 8:
viz.callback(viz.TIMER_EVENT, 'HandleTimer')
viz.starttimer(SAVE_DATA)




this script is not running, and I was wondering if it is because i need version 2.3 of python instead of version 2.1. It could also be a problem with the syntax too. If the problem is that I'm using 2.1 instead of 2.3, how do i upgrade it? I appreciate any help. Thank you in advance.

farshizzo
08-04-2004, 11:23 AM
Hi,

The latest version of Vizard uses python 2.3, however python does not support the switch statement. The equivalent of this in python is to do if ... elif ... elif ...

On a side note, to check if a joystick button is down you would do the following:buttonstate = sid.buttons()
if buttonstate & sid.BUTTON1:
print 'button 1 is down'

if buttonstate & sid.BUTTON2:
print 'button 2 is down'

if buttonstate & sid.BUTTON3:
print 'button 3 is down'

if buttonstate & sid.BUTTON4:
print 'button 4 is down'
The button state is a bitmask, where each bit represents the state of a corresponding button. Therefore you have to perform a bitwise AND to check if a button is down.
Alternatively, you could setup a callback to notify you when a joystick button is pressed. There is an example script that shows how to use the sid library under C:\Program Files\Vizard20\examples\input\joystick.py

Please let me know if you need any more help.