WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 05-21-2009, 09:29 AM
mberkes mberkes is offline
Member
 
Join Date: Mar 2009
Posts: 8
So after a two month absense from working on this, I'm back at it, and realised I don't know what I'm doing! My code seems to be a mess with extraneous, or at least poorly written, code and the experiment doesn't work how I'd like. Here's my code:

Code:
import viz
import viztask
import random
viz.go()

viz.MainView.move(0,1.4,-13)
#add pathway to bring objects from
viz.res.addPath('C:\Users\Matyi\Desktop\2009 Experiments')
#field of view at 45 degrees
viz.fov(45)


#keep nine positions in an array
pos = [[-2.667, 0.0, -1.524],[1.51892, 0.0, -2.53492],[-0.82042, 0.0, 2.89052],[2.286, 0.0, -0.04572],[-1.17856, 0.0, -1.30302],[1.8415, 0.0, 2.06248],[-0.94996, 0.0, -2.85242],[-3.15722, 0.0, 0.82042],[-0.20828, 0.0, 0.84328]]


#add table, keep it in position, scale
table = viz.add('bluetable.wrl')
table.setPosition(0,0,0)
table.setScale(.5,.5,.5)
table.disable(viz.PICKING)

#add objects and scale
bottle = viz.add('bottle.wrl')
bottle.setScale(.5,.5,.5)
bottle.center(0,0,0)

candle = viz.add('candle.wrl')
candle.setScale(.5,.5,.5)
candle.center(0,0,0)

clamp = viz.add('clamp.wrl')
clamp.setScale(.5,.5,.5)
clamp.center(0,.5,0)
clamp.rotate(0,150,90)

lock = viz.add('lock.wrl')
lock.setScale(.5,.5,.5)
lock.center(0,0,.0)

wood = viz.add('wood.wrl')
wood.setScale(.5,.5,.5)
wood.center(0,0,0)

#make a list with the objects in it
objects = [bottle, candle, clamp, lock, wood]

#disable mouse navigation
viz.mouse(viz.OFF)



def prep():
	viz.MainScene.visible(viz.OFF)
	#vizact.onkeydown(' ', sceneOn,1)

rand_positions = []
def sceneOn(num):

	global rand_positions
	
	positions = [0,1,2,3,4,5,6,7,8]
	
	if num == 1:
		
		#set objects to 5 different random positions
		rand_positions = random.sample(positions,5)
		
		objects[0].setPosition(pos[rand_positions[0]])
		objects[1].setPosition(pos[rand_positions[1]])
		objects[2].setPosition(pos[rand_positions[2]])
		objects[3].setPosition(pos[rand_positions[3]])
		objects[4].setPosition(pos[rand_positions[4]])

		#vizact.ontimer2(3,0,sceneOff)

	elif num == 2:
		
		#choose one object to move randomly and leave others in their places
		
		#first get available positions
		diff_list = [item for item in positions if not item in rand_positions]
		rand_position = random.sample(diff_list,1)[0]
		
		#choose one of the objects
		rand_obj = random.randint(0,4)
		
		#set the randomly chosen object to the new random position
		objects[rand_obj].setPosition(pos[rand_position])
		print 'object ' + str(rand_obj) + ' moved to position ' + str(rand_position)  
		
	viz.MainScene.visible(viz.ON)
	

def sceneOff():
	
	viz.MainScene.visible(viz.OFF)
	#vizact.ontimer2(10,0,sceneOn,2)



#define the file to save subject responses
response_data = open('exp_data','a')
	
#use this; viztask is better
def experiment():
	
	while True:
		viz.MainScene.visible(viz.OFF)
		yield viztask.waitKeyDown(' ')
		yield sceneOn(1)
		viztask.waitTime(3)
		yield sceneOff()
		viztask.waitTime(10)
		yield sceneOn(2)
		d = viz.Data()
		yield viztask.waitMouseDown(viz.MOUSEBUTTON_LEFT, d)
		print str(objects), 'was selected at', d.time

viztask.schedule( experiment() ) 


#viz.callback(viz.MOUSEDOWN_EVENT,mouseclick)
#go to blank scene
#vizact.whilemousedown(viz.MOUSEBUTTON_LEFT,prep)
	

	

#input subject number at start
subject = viz.input('What is the participant number?')
If I could get some help here telling me what's unnecessary, what's good and that I should keep expanding on, that would be amazing. In particular, my problems include:

- subject number can be blank and it still accepts this, I need that to change
- data file doesn't exist; do I create a spreadsheet and it stores there, or automatically makes one with the correct code?
- pressing space now just moves an object with no timing at all or scene change
- clicking anywhere at all makes the scene blank and gives me lines saying [vizard object yada yada yada moved positions] with nothing relevant, or the object name

Thanks for your help, my complete lack of understanding with vizard is getting somewhat discouraging.
Reply With Quote
Reply

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Sharing Files on SourceForge farshizzo Vizard 1 09-03-2012 11:18 AM
Project .avi or .mpeg file pattie Vizard 2 02-06-2007 08:09 AM


All times are GMT -7. The time now is 09:39 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC