How to create mini car driving by wiimote
Hello, all !!
Like the example "joystick_driving.py", I can control the mini car driving by joystick. However, now I want to control the mini car driving by wiimote. I think that key points may be one import,import vizjoy, and two definition,def joyMove(e) & def updateCar(). And there is a Initialize global variable,joyPOS, do I need to initial something like that for wiimote to create the car driving?? How can I do ?? Thank you very much!! Best Regards! |
You could modify the updateCar function to use the wiimote buttons to control the car. For example, you could replace:
Code:
#Use y position of joystick to compute forward car movement Code:
if wiimote.isButtonDown(wii.BUTTON_UP): |
Quote:
According to "joystick_driving.py", the car can move smoothly instead of moving step by step. For example, when I press the joystick's up button or left button, it can always move forward or turn left until I release the button. However, now I try the code you provide, it can move, but its movement is step by step. For example, when I press the wiimote's up button or left button, it can just move a small step and then stop. If I keep pressing the button, it becomes not to move! I would like to use wiimote to make the same preference. How can I modify it ?? Thanks for your help Kevin |
Can you post the script you are using?
|
Of course! This is my script.
################################################## ######### MOVE_SPEED = 10 TURN_SPEED = 90 import viz viz.go() import vizinfo vizinfo.add('This is a car driving test by wiimote') viz.phys.enable() ground = viz.add('tut_ground.wrl') ground.collidePlane() car = viz.add('mini.osgx') car.setPosition(0,0,-10) car.setScale(1,1,1) car.setEuler(0,0,0) car.collideBox() wii = viz.add('wiimote.dle') wiimote = wii.addWiimote() wiimote.led = wii.LED_1 def updateCar(): if wiimote.isButtonDown(wii.BUTTON_UP): forwardMovementAmount = viz.elapsed() * MOVE_SPEED car.setPosition( [ 0, 0, forwardMovementAmount], viz.REL_LOCAL ) if wiimote.isButtonDown(wii.BUTTON_DOWN): forwardMovementAmount = viz.elapsed() * MOVE_SPEED car.setPosition( [ 0, 0, -forwardMovementAmount], viz.REL_LOCAL ) if wiimote.isButtonDown(wii.BUTTON_LEFT): rotationAmount = viz.elapsed() * TURN_SPEED car.setEuler( [ -rotationAmount, 0 , 0 ] , viz.REL_LOCAL ) if wiimote.isButtonDown(wii.BUTTON_RIGHT): rotationAmount = viz.elapsed() * TURN_SPEED car.setEuler( [ rotationAmount, 0 , 0 ] , viz.REL_LOCAL ) vizact.onsensordown(wiimote,wii.BUTTON_UP,updateCa r) vizact.onsensordown(wiimote,wii.BUTTON_DOWN,update Car) vizact.onsensordown(wiimote,wii.BUTTON_LEFT,update Car) vizact.onsensordown(wiimote,wii.BUTTON_RIGHT,updat eCar) viz.MainView.move(0,0,-15) ################################################## ######### And I also have a question. Why my car can jump in the beginning? I'd like it to be static in the beginning. How can I do ? Thanks for your help, Jeff !! Kevin |
Notice: vizact.onsensordown(........................,updat eCar'''the letters can be separate''')
It's updateCar. |
use code tags please try this update car:
Code:
#Update position of car every frame |
Thank you Darkmax ! It can run smoothly !!
^^y |
All times are GMT -7. The time now is 02:30 AM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC