![]() |
|
#1
|
|||
|
|||
Hi again
Thanks for your answer. I'm referring to the canvas example script, yes. I tried to change the keypresses to button checks but I can't get it working. Is there a mistake somewhere in my script? I'd be really glad for any kind of advice. Code:
import viz import vizact import vizcam import vizdlg import vizinfo import viztask ### canvas = viz.addGUICanvas() canvas.setRenderWorldOverlay([800,600],50,3) canvas.setPosition([0,0,0]) viz.mouse.setTrap(True) viz.mouse.setVisible(False) canvas.setMouseStyle(viz.CANVAS_MOUSE_VIRTUAL) # Apply settings viz.MainWindow.setDefaultGUICanvas(canvas) ### import oculus hmd = oculus.Rift() viz.link(hmd.getSensor(), viz.MainView) viz.go() ########################### remoteEnter = viz.addButton(oculus.BUTTON_REMOTE_ENTER) remoteUp = viz.addButton(oculus.BUTTON_REMOTE_UP) remoteDown = viz.addButton(oculus.BUTTON_REMOTE_DOWN) remoteLeft = viz.addButton(oculus.BUTTON_REMOTE_LEFT) remoteRight = viz.addButton(oculus.BUTTON_REMOTE_RIGHT) ########################### # Load environment models worlds = [ viz.addChild('maze.osgb'), viz.addChild('gallery.osgb'), viz.addChild('dojo.osgb') ] for i, model in enumerate(worlds): model.visible(i == 0) controlPanel = vizinfo.InfoPanel(text='Navigate with WASD', title='Canvas Example') controlPanel.addSeparator() manual_cursor = controlPanel.addLabelItem('Manual Cursor',viz.addCheckbox()) ###################### def ManualCursorPositionTask(): """Use arrow keys to manually move canvas cursor""" while True: pos = canvas.getCursorPosition(viz.CANVAS_CURSOR_PIXELS) inc = 250.0 * viz.getFrameElapsed() # if viz.key.isDown(viz.KEY_UP): # pos[1] += inc # if viz.key.isDown(viz.KEY_LEFT): # pos[0] -= inc # if viz.key.isDown(viz.KEY_DOWN): # pos[1] -= inc # if viz.key.isDown(viz.KEY_RIGHT): # pos[0] += inc # # canvas.setCursorPosition(pos, viz.CANVAS_CURSOR_PIXELS) if remoteUp.get() == viz.DOWN: pos[1] += inc if remoteLeft.get() == viz.DOWN: pos[0] -= inc if remoteDown.get() == viz.DOWN: pos[1] -= inc if remoteRight.get() == viz.DOWN: pos[0] += inc canvas.setCursorPosition(pos, viz.CANVAS_CURSOR_PIXELS) yield viztask.waitFrame(1) ###################### def ManualCursorButtonTask(): """Use spacebar to manually simulate mouse press/release on canvas""" while True: # yield viztask.waitKeyDown(' ', priority=viz.PRIORITY_GUI_HANDLER-1) # # canvas.sendMouseButtonEvent(viz.MOUSEBUTTON_LEFT, viz.DOWN) # # yield viztask.waitKeyUp(' ', priority=viz.PRIORITY_GUI_HANDLER-1) # # canvas.sendMouseButtonEvent(viz.MOUSEBUTTON_LEFT, viz.UP) yield viztask.waitButtonDown(remoteEnter, priority=viz.PRIORITY_GUI_HANDLER-1) canvas.sendMouseButtonEvent(viz.MOUSEBUTTON_LEFT, viz.DOWN) yield viztask.waitButtonUp(remoteEnter, priority=viz.PRIORITY_GUI_HANDLER-1) canvas.sendMouseButtonEvent(viz.MOUSEBUTTON_LEFT, viz.UP) def ToggleManualCursorTask(): """Handle toggling of manual cursor mode""" notice_panel = vizinfo.InfoPanel('Arrow keys control cursor.\nSpacebar simulates button press.', title='Manual Cursor Enabled', align=viz.ALIGN_RIGHT_TOP, key=None, icon=False) notice_panel.visible(False) while True: yield viztask.waitButtonDown(manual_cursor) # Enable manual cursor control UpdateMouseStyle() pos_task = viztask.schedule(ManualCursorPositionTask()) button_task = viztask.schedule(ManualCursorButtonTask()) notice_panel.visible(True) yield viztask.waitButtonUp(manual_cursor) # Disable manual cursor control UpdateMouseStyle() pos_task.remove() button_task.remove() notice_panel.visible(False) viztask.schedule(ToggleManualCursorTask()) |
#2
|
|||
|
|||
First get a handle to the remote controller:
Code:
hmd = oculus.Rift() remote = hmd.getRemoteController() Code:
if remote.isButtonDown(oculus.BUTTON_REMOTE_UP): pos[1] += inc if remote.isButtonDown(oculus.BUTTON_REMOTE_LEFT): pos[0] -= inc if remote.isButtonDown(oculus.BUTTON_REMOTE_DOWN): pos[1] -= inc if remote.isButtonDown(oculus.BUTTON_REMOTE_RIGHT): pos[0] += inc |
#3
|
|||
|
|||
That's exactly what I was looking for, thanks!
But how would you change the ManualCursorButtonTask function? Code:
def ManualCursorButtonTask(): """Use spacebar to manually simulate mouse press/release on canvas""" while True: yield viztask.waitKeyDown(' ', priority=viz.PRIORITY_GUI_HANDLER-1) canvas.sendMouseButtonEvent(viz.MOUSEBUTTON_LEFT, viz.DOWN) yield viztask.waitKeyUp(' ', priority=viz.PRIORITY_GUI_HANDLER-1) canvas.sendMouseButtonEvent(viz.MOUSEBUTTON_LEFT, viz.UP) |
![]() |
Tags |
action, button, oculus, oculus remote |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Oculus Rift + Vizard help required | sukhpreet | Vizard | 1 | 01-03-2017 10:52 AM |
Xbox controller and Oculus DK2 | prilpi | Vizard | 17 | 03-28-2016 05:00 AM |
3D text oculus for right to left languages | bbb | Vizard | 2 | 01-16-2016 07:02 AM |
Multiple post-process effects with oculus rift | lklab | Vizard | 2 | 03-13-2015 01:48 PM |
Oculus runtime disrupts clustering to mirror DK2 display | performlabrit | Vizard | 1 | 01-23-2015 07:00 AM |