|
|
Thread Tools | Rating: | Display Modes |
#1
|
|||
|
|||
360 panorama image cube using as darts target and record the xy coordinates
Greetings. I am a GIS Analyst and would like to use the 360 panorama image cube as walls so that users of the program can create 'marks' on the 360 panorama image cube (e.g. like a darts game); in this regard I plan to record the xy coordinates of locations marked by users throwing a beach ball in a given direction.
I currently am engaging in research using Vizard software with a head mounded display device (zSight). I have been learning the relevant programming skills using tutorials and examples provided by Worldviz. However, I am not a gaming programmer and am having difficulties with specific aspects the required programming. In order to more specifically describe my difficulties, I have recreated a framework of my research environment using resources provided by Worldviz, as per the code shown below. All codes are from the 360 panorama and duck court examples. (Please note that I do not have access to more advanced software like 3ds Max, so if I need to create 3D objects then Google Sketchup is my only choice.) I am having the following three difficulties:
I very much appreciate any assistance you could provide in this regard. Thanks so much! Code:
import viz viz.setMultiSample(4) viz.fov(60) viz.go() env = viz.addEnvironmentMap('townhall_L.jpg') sky = viz.addCustomNode('skydome.dlc') sky.texture(env) NUM_BALLS = 3 BALL_SPEED = 5 viz.link( viz.Mouse , viz.addTexQuad(viz.SCREEN,texture=viz.add('crosshair.png')) ) balls = [] #Enable physics, but don't use gravity viz.phys.enable() viz.phys.setGravity([0,0,0]) #Initialize all the balls for x in range(NUM_BALLS): #Create a ball ball = viz.addChild('beachball.osgb',pos=(0,0,-40),cache=viz.CACHE_CLONE) #Enable collisions with the ball based on a sphere shape ball.collideSphere() #We want to be notified of the balls collisions ball.enable(viz.COLLIDE_NOTIFY) #Add the ball to the ball list balls.append(ball) #Create cycle for balls nextBall = viz.cycle(balls) #Shoot a ball def shootBall(): #Find the next available ball to shoot ball = nextBall.next() #Calculate the vector of the ball based on the mouse position line = viz.MainWindow.screenToWorld(viz.mouse.getPosition()) line.length = BALL_SPEED #Translate the ball to the head position ball.setPosition(line.begin) #Reset ball and set velocity ball.reset() ball.setVelocity(line.dir) #Play the gunshot sound viz.playSound('gunshot.wav') #Shoot a ball whenever left mousebutton is clicked vizact.onmousedown(viz.MOUSEBUTTON_LEFT,shootBall) #Make sure balls maintain constant velocity def UpdateVelocity(): for ball in balls: ball.setVelocity(viz.Vector(ball.getVelocity(),length=BALL_SPEED)) vizact.ontimer(0,UpdateVelocity) |
Tags |
360 panorama, darts game, xy coordinates |
|
|