예제 #1
0
    def __init__(self, canvas, controller):
        super(ModeMenu, self).__init__(canvas, 'mode', 'Mode Selection')

        # Store controller instance
        self.controller = controller

        #Store modes from config to populate modemenu with
        self.modes = config.MenuConfig.Modes
        self.getPanel().fontSize(50)

        ##########################
        """creating modes panel"""
        ##########################

        #creating labels for modes
        self.modeLabels = {}

        for l in self.modes.iterkeys():
            self.modeLabels[l] = viz.addText(l, parent=canvas)

        #creating radio buttons for modes
        self.modeGroup = viz.addGroup(parent=canvas)
        self.radioButtons = {}

        for rb in self.modes.iterkeys():
            self.radioButtons[rb] = viz.addRadioButton(self.modeGroup,
                                                       parent=canvas)

        self.radioButtons['Free Play'].set(1)

        #creating grid panel to add mode to
        modeGrid = vizdlg.GridPanel(parent=canvas)

        #adding modes and radio buttons to grid panel
        for i in self.modes.iterkeys():
            modeGrid.addRow([self.modeLabels[i], self.radioButtons[i]])

        ##############################
        """next and back buttons"""
        ##############################

        #creating grid panels to add next and back buttons to
        setGrid = vizdlg.GridPanel(parent=canvas)

        #create back and next buttons and add to grid panel
        backButton = viz.addButtonLabel('Back')
        startButton = viz.addButtonLabel('Next')
        setGrid.addRow([backButton, startButton])

        #add back and state button actions
        self.backward = vizact.onbuttondown(backButton,
                                            self.controller.backMenu)
        self.forward = vizact.onbuttondown(startButton,
                                           self.controller.nextMenu)

        ###############################
        """add items to ModeMenu"""
        ###############################
        self.addItem(modeGrid)
        self.addItem(setGrid)
예제 #2
0
	def __init__(self, canvas, controller):
		# Add Virtual Mouse
		canvas.setMouseStyle(viz.CANVAS_MOUSE_VIRTUAL)
		# Store controller instance
		self.controller = controller
	
		"""initialize the Main menu"""
		super(MainMenu, self).__init__(canvas, 'main', 'Main Menu', True)
		
		
		# add play button, play button action, and scroll over animation
		self.play = self.addItem(viz.addButtonLabel('Play'), fontSize = 50)
		vizact.onbuttondown(self.play, self.controller.nextMenu)
		
		# add options button row
		self.Help = self.addItem(viz.addButtonLabel('Help'), fontSize = 50)
		vizact.onbuttondown(self.Help, self.helpButton)
		
		# add help button row
		self.Exit = self.addItem(viz.addButtonLabel('Exit'), fontSize = 50)
		vizact.onbuttondown(self.Exit, self.controller.exitGame)
		
#		#rendering
#		bb = self.getBoundingBox()
#		self.canvas.setRenderWorldOverlay([bb.width*1.8, bb.height*1.8], fov = bb.height*.1, distance = 3)
		
		#change scale depending on display mode
		self.setScale(*[i*config.menuScale[self.name] for i in [1,1,1]])
예제 #3
0
    def __init__(self, canvas):
        vizinfo.InfoPanel.__init__(self,
                                   '',
                                   title='In Game',
                                   fontSize=100,
                                   align=viz.ALIGN_CENTER_CENTER,
                                   icon=False,
                                   parent=canvas)

        self.name = 'ingame'
        self.canvas = canvas
        self.active = False
        self.getPanel().fontSize(50)
        self.setPanelVisible(viz.OFF, animate=False)
        self.menuVisible = False

        self.restart = self.addItem(viz.addButtonLabel('Restart'))
        self.end = self.addItem(viz.addButtonLabel('End game'))

        #Callbacks
        vizact.onbuttondown(self.restart, self.restartButton)
        vizact.onbuttondown(self.end, self.endButton)

        #change scale depending on display mode
        self.setScale(*[i * config.menuScale[self.name] for i in [1, 1, 1]])
예제 #4
0
    def __init__(self):

        # create simple GUI window with buttons for: pause, continue and a window to print strings
        self.pause_button = viz.addButtonLabel('pause Experiment')
        self.pause_button.setPosition(.5, .7)
        self.pause_button.setScale(2, 2)

        self.continue_button = viz.addButtonLabel('continue Experiment')
        self.continue_button.setPosition(.5, .5)
        self.continue_button.setScale(2, 2)

        self.text_screen = viz.addText('current marker:', viz.SCREEN)
        self.text_screen.setPosition(.25, .3)

        self.marker_field = viz.addButtonLabel('markers')
        self.marker_field.setPosition(.5, .2)
        self.marker_field.setScale(2, 2)

        # register callbacks for GUI to either pause or continue function
        viz.callback(viz.BUTTON_EVENT, self.on_button_press)

        # create network outlet
        self.connection_to_vr_machine = viz.addNetwork('BPN-C043')

        # register callback for network event handling
        viz.callback(viz.NETWORK_EVENT, self.write)

        # send behavioral to LSL stream (saved extra for faster testing of behavioral data)
        # create and start LSL marker stream
        self.behavior_stream_info = StreamInfo('BehavioralMarkerStream',
                                               'Markers', 1, 0, 'string',
                                               socket.gethostname())
        self.behavior_stream = StreamOutlet(self.behavior_stream_info)
예제 #5
0
    def __init__(self, canvas):
        """initialize the Main menu"""
        vizinfo.InfoPanel.__init__(self, '', fontSize = 100, parent = canvas, align = viz.ALIGN_CENTER_CENTER, \
         title = 'Main Menu', icon = False)

        # Since we are using the vizard pointer, hide system mouse
        viz.mouse.setVisible(False)
        viz.mouse.setTrap(True)
        self.menuVisible = True
        self.canvas = canvas
        self.active = True
        self.name = 'main'

        # add play button, play button action, and scroll over animation
        self.play = self.addItem(viz.addButtonLabel('Play'), fontSize=50)
        vizact.onbuttondown(self.play, self.playButton)

        # add options button row
        self.help = self.addItem(viz.addButtonLabel('Help'), fontSize=50)
        vizact.onbuttondown(self.help, self.helpButton)

        # add help button row
        self.exit = self.addItem(viz.addButtonLabel('Exit'), fontSize=50)
        vizact.onbuttondown(self.exit, self.exitButton)

        #		#rendering
        #		bb = self.getBoundingBox()
        #		self.canvas.setRenderWorldOverlay([bb.width*1.8, bb.height*1.8], fov = bb.height*.1, distance = 1)

        #change scale depending on display mode
        self.setScale(*[i * config.menuScale[self.name] for i in [1, 1, 1]])
예제 #6
0
	def __init__(self, canvas):
		"""initialize the Main menu"""
		vizinfo.InfoPanel.__init__(self, '', fontSize = 100, parent = canvas, align = viz.ALIGN_CENTER_CENTER, \
			title = 'Main Menu', icon = False)
		
		# Since we are using the vizard pointer, hide system mouse
		viz.mouse.setVisible(False)
		viz.mouse.setTrap(True)
		self.menuVisible = True
		self.canvas = canvas
		self.active = True
		self.name = 'main'
		
		# add play button, play button action, and scroll over animation
		self.play = self.addItem(viz.addButtonLabel('Play'), fontSize = 50)
		vizact.onbuttondown(self.play, self.playButton)
		
		# add options button row
		self.help = self.addItem(viz.addButtonLabel('Help'), fontSize = 50)
		vizact.onbuttondown(self.help, self.helpButton)
		
		# add help button row
		self.exit = self.addItem(viz.addButtonLabel('Exit'), fontSize = 50)
		vizact.onbuttondown(self.exit, self.exitButton)
		
#		#rendering
#		bb = self.getBoundingBox()
#		self.canvas.setRenderWorldOverlay([bb.width*1.8, bb.height*1.8], fov = bb.height*.1, distance = 1)
		
		#change scale depending on display mode
		self.setScale(*[i*config.menuScale[self.name] for i in [1,1,1]])
예제 #7
0
    def __init__(self, canvas, controller):
        # Add Virtual Mouse
        canvas.setMouseStyle(viz.CANVAS_MOUSE_VIRTUAL)
        # Store controller instance
        self.controller = controller
        """initialize the Main menu"""
        super(MainMenu, self).__init__(canvas, 'main', 'Main Menu', True)

        # add play button, play button action, and scroll over animation
        self.play = self.addItem(viz.addButtonLabel('Play'), fontSize=50)
        vizact.onbuttondown(self.play, self.controller.nextMenu)

        # add options button row
        self.Help = self.addItem(viz.addButtonLabel('Help'), fontSize=50)
        vizact.onbuttondown(self.Help, self.helpButton)

        # add help button row
        self.Exit = self.addItem(viz.addButtonLabel('Exit'), fontSize=50)
        vizact.onbuttondown(self.Exit, self.controller.exitGame)

        #		#rendering
        #		bb = self.getBoundingBox()
        #		self.canvas.setRenderWorldOverlay([bb.width*1.8, bb.height*1.8], fov = bb.height*.1, distance = 3)

        #change scale depending on display mode
        self.setScale(*[i * config.menuScale[self.name] for i in [1, 1, 1]])
예제 #8
0
	def __init__(self, canvas, controller):
		super(ModeMenu, self).__init__(canvas, 'mode', 'Mode Selection')
		
		# Store controller instance
		self.controller = controller
		
		#Store modes from config to populate modemenu with
		self.modes = config.MenuConfig.Modes
		self.getPanel().fontSize(50)
		
		##########################
		"""creating modes panel"""
		##########################
		
		#creating labels for modes
		self.modeLabels = {}
		
		for l in self.modes.iterkeys():
			self.modeLabels[l] = viz.addText(l, parent = canvas)
		
		#creating radio buttons for modes
		self.modeGroup = viz.addGroup(parent = canvas)
		self.radioButtons = {}
		
		for rb in self.modes.iterkeys():
			self.radioButtons[rb] = viz.addRadioButton(self.modeGroup, parent = canvas)
		
		self.radioButtons['Free Play'].set(1)
		
		#creating grid panel to add mode to
		modeGrid = vizdlg.GridPanel(parent = canvas)
		
		#adding modes and radio buttons to grid panel
		for i in self.modes.iterkeys():
			modeGrid.addRow([self.modeLabels[i], self.radioButtons[i]])
		
		##############################
		"""next and back buttons"""
		##############################
		
		#creating grid panels to add next and back buttons to
		setGrid = vizdlg.GridPanel(parent = canvas)
		
		#create back and next buttons and add to grid panel
		backButton = viz.addButtonLabel('Back')
		startButton = viz.addButtonLabel('Next')
		setGrid.addRow([backButton, startButton])
		
		#add back and state button actions
		self.backward = vizact.onbuttondown(backButton, self.controller.backMenu)
		self.forward = vizact.onbuttondown(startButton, self.controller.nextMenu)
		
		###############################
		"""add items to ModeMenu"""
		###############################
		self.addItem(modeGrid)
		self.addItem(setGrid)
예제 #9
0
def CreateLabelledPanel():
	panel = vizdlg.GridPanel(cellAlign=vizdlg.ALIGN_CENTER_TOP,border=False,spacing=0,padding=1,background=False,margin=0)
	diameterLabel = viz.addButtonLabel('d (mm)')
	thicknessLabel = viz.addButtonLabel('t (mm)')
	lengthLabel = viz.addButtonLabel('l (m)')
	quantityLabel = viz.addButtonLabel('qty')
	deleteLabel = viz.addButtonLabel('')
	headerRow = panel.addRow([diameterLabel,thicknessLabel,lengthLabel,quantityLabel,deleteLabel])
	return panel
예제 #10
0
	def __init__(self,canvas,controller):
		super(InGameMenu, self).__init__(canvas, 'ingame', 'In Game Menu')
		# Store controller instance
		self.controller = controller
		
		#menu buttons
		self.restart = self.addItem(viz.addButtonLabel('Restart'), fontSize = 50)
		self.end = self.addItem(viz.addButtonLabel('End game'), fontSize = 50)
		
		#Callbacks
		vizact.onbuttondown(self.restart, self.controller.restart)
		vizact.onbuttondown(self.end, self.controller.endGame)
		
		#change scale depending on display mode
		self.setScale(*[i*config.menuScale[self.name] for i in [1,1,1]])
예제 #11
0
    def __init__(self, canvas, controller):
        super(InGameMenu, self).__init__(canvas, 'ingame', 'In Game Menu')
        # Store controller instance
        self.controller = controller

        #menu buttons
        self.restart = self.addItem(viz.addButtonLabel('Restart'), fontSize=50)
        self.end = self.addItem(viz.addButtonLabel('End game'), fontSize=50)

        #Callbacks
        vizact.onbuttondown(self.restart, self.controller.restart)
        vizact.onbuttondown(self.end, self.controller.endGame)

        #change scale depending on display mode
        self.setScale(*[i * config.menuScale[self.name] for i in [1, 1, 1]])
예제 #12
0
def displayInputPanel():
	global inputPanel, names
	
	inputPanel = viz.addGUIGroup()
#	endG = viz.addGroup(viz.SCREEN)
	splashScreen = viz.addTexQuad(parent=viz.SCREEN,pos=[0.5,0.5,0],scale=[13,10.5,1])
	splashScreen.texture(viz.addTexture('textures/splash_screen'+LANG+'.jpg'))
	splashScreen.setParent(inputPanel)
	names = []
	pl = range(condition%2*2+1)
	pl.reverse()
	for i,p in enumerate(pl):
		name = viz.addTextbox()
		nameText = {'':'Player %s name:', 'GR':'Όνομα παίκτη %s:'}
		title = viz.addText(nameText[LANG]%str(i+1), viz.SCREEN)
		title.fontSize(24)
		title.addParent(inputPanel)
		title.setPosition([.4, .53+.1*p, 0])
		name.setPosition([.5, .5+.1*p, 0])
		name.addParent(inputPanel)
		names.append(name)
	startB = viz.addButtonLabel('START')
	startB.setPosition(.5,.4)
	startB.addParent(inputPanel)
	vizact.onbuttonup(startB, initialize)
def participantInfo():

    #Add an InfoPanel with a title bar
    participantInfo = vizinfo.InfoPanel('',
                                        title='Participant Information',
                                        align=viz.ALIGN_CENTER,
                                        icon=False)

    #Add name and ID fields
    textbox_nr = participantInfo.addLabelItem('NR', viz.addTextbox())
    participantInfo.addSeparator()
    textbox_id = participantInfo.addLabelItem('ID', viz.addTextbox())
    participantInfo.addSeparator()

    #Add submit button aligned to the right and wait until it's pressed
    submitButton = participantInfo.addItem(viz.addButtonLabel('Submit'),
                                           align=viz.ALIGN_RIGHT_CENTER)
    yield viztask.waitButtonUp(submitButton)

    #Collect participant data
    exp.pp_nr = "%02d" % (int(textbox_nr.get()), )
    exp.pp_id = textbox_id.get()
    pr.pp_nr = exp.pp_nr
    pr.pp_id = exp.pp_id

    participantInfo.remove()
예제 #14
0
    def __init__(self):

        viz.EventClass.__init__(self)
        self.done = viztask.Signal()
        self.callback(viz.BUTTON_EVENT, self.onButton)
        self.rowantext = """
Charactor Creation
Enter Your Charactor's name:
"""

        vizcam.PivotNavigate(center=[15, -10, 0],
                             distance=70,
                             sensitivity=[1.0, 1.0])

        self.text_2D_world = viz.addText(self.rowantext,
                                         pos=[2, 2, 2],
                                         scene=2)
        self.myButton2 = viz.addButtonLabel('Done!', scene=2)  #Add a button.

        self.myButton2.setPosition(.5, .5)  #Set its position.
        self.myButton2.setScale(1, 1)  #Scale it.

        #Add a text box.
        self.box = viz.addTextbox(scene=2)
        #self.box.message('default')
        #Make it twice as long.
        self.box.length(2)
        #Place it in window.
        self.box.setPosition(.5, .8)
        #Have it grow when text reaches its boundary.
        self.box.overflow(viz.OVERFLOW_GROW)
예제 #15
0
파일: notes.py 프로젝트: kevinsp/DvB
		def delete3DNote1():

			noteNummer = textBox.get()
			infoBox.remove()
			
			def removeNotePanel():
				notePanel.remove()
				okButton.remove()
				globalVariables.windowOpen = False
				
					
			try:
				if (int(noteNummer)>0):
					noteList[int (noteNummer)-1].remove()
					del noteList[int (noteNummer)-1] #Lösche 3D Notiz
					globalVariables.windowOpen = False
				else:
					raise
			except:
				notePanel = vizinfo.InfoPanel("Bitte nur Nummern im Bereich\nder verfügbaren 3D Notizen eingeben.",align=viz.ALIGN_CENTER,fontSize=25,icon=False,key=None)
				notePanel.visible(True)
				#Erschaffe Bestätigungsbutton
				okButton = viz.addButtonLabel("Ok")
				okButton.setPosition(0.5,0.40)
				okButton.setScale(1,1)
				vizact.onbuttondown(okButton,removeNotePanel)
예제 #16
0
파일: checkpoints.py 프로젝트: kevinsp/DvB
		def porten():
			#Position abfragen und infobox entfernen
			checkPointNummer = portBox.get()
			infoBox.remove()
			
			def removeCheckPointsPanel():
				checkPointsPanel.remove()
				okButton.remove()
				globalVariables.windowOpen = False
				
			try:
				if (int(checkPointNummer)>0): #Prüfe eingabe und porte
					position = checkPointsList[int(checkPointNummer)-1]
					viz.MainView.setPosition(position[0], position[1], position[2])
					tracker.setPosition(position[0], position[1], position[2])
				else:
					raise
			except:

				checkPointsPanel = vizinfo.InfoPanel("Bitte nur Nummern im Bereich\nder verfügbaren Checkpoints eingeben.",align=viz.ALIGN_CENTER,fontSize=25,icon=False,key=None)
				checkPointsPanel.visible(True)
				#Erschaffe Bestätigungsbutton
				okButton = viz.addButtonLabel("Ok")
				okButton.setPosition(0.5,0.40)
				okButton.setScale(1,1)
				vizact.onbuttondown(okButton,removeCheckPointsPanel)
예제 #17
0
파일: porten.py 프로젝트: kevinsp/DvB
		def porten2():
			#Position abfragen und infobox
			posiX = posiXBox.get()
			posiY = posiYBox.get()
			posiZ = posiZBox.get()
			infoBox.remove()

			def removePortPanel():
				checkPointsPanel.remove()
				okButton.remove()
				globalVariables.windowOpen = False
				
			try:
				###Kolissionserkennung einbauen###
				viz.MainView.setPosition(float(posiX), float(posiY), float(posiZ))
				tracker.setPosition(float(posiX), float(posiY), float(posiZ))
				globalVariables.windowOpen = False
			except:
				#####Noch überarbeiten###
				checkPointsPanel = vizinfo.InfoPanel("Fehler",align=viz.ALIGN_CENTER,fontSize=25,icon=False,key=None)
				checkPointsPanel.visible(True)
				#Erschaffe Bestätigungsbutton
				okButton = viz.addButtonLabel("Ok")
				okButton.setPosition(0.5,0.40)
				okButton.setScale(1,1)
				vizact.onbuttondown(okButton,removePortPanel)
예제 #18
0
def getParticipantInfo():

    #Add an InfoPanel with a title bar
    participantInfo = vizinfo.InfoPanel('',
                                        title='Participant Information',
                                        align=viz.ALIGN_CENTER,
                                        icon=False)

    #Add name and ID fields
    textbox_last = participantInfo.addLabelItem('Last Name', viz.addTextbox())
    textbox_first = participantInfo.addLabelItem('First Name',
                                                 viz.addTextbox())
    textbox_id = participantInfo.addLabelItem('ID', viz.addTextbox())
    participantInfo.addSeparator(padding=(20, 20))

    #Add gender and age fields
    radiobutton_male = participantInfo.addLabelItem('Male',
                                                    viz.addRadioButton(0))
    radiobutton_female = participantInfo.addLabelItem('Female',
                                                      viz.addRadioButton(0))
    droplist_age = participantInfo.addLabelItem('Age Group', viz.addDropList())
    ageList = ['20-30', '31-40', '41-50', '51-60', '61-70']
    droplist_age.addItems(ageList)
    participantInfo.addSeparator(padding=(20, 20))

    #Add 2d 3D fields
    radiobutton_2D = participantInfo.addLabelItem('2D', viz.addRadioButton(1))
    radiobutton_3D = participantInfo.addLabelItem('3D', viz.addRadioButton(1))
    participantInfo.addSeparator(padding=(20, 20))

    #Add submit button aligned to the right and wait until it's pressed
    submitButton = participantInfo.addItem(viz.addButtonLabel('Submit'),
                                           align=viz.ALIGN_RIGHT_CENTER)
    yield viztask.waitButtonUp(submitButton)

    #Collect participant data
    data = viz.Data()
    data.lastName = textbox_last.get()
    data.firstName = textbox_first.get()
    data.id = textbox_id.get()
    data.ageGroup = ageList[droplist_age.getSelection()]

    if radiobutton_male.get() == viz.DOWN:
        data.gender = 'male'
    else:
        data.gender = 'female'

    if radiobutton_2D.get() == viz.DOWN:
        data.environment = '2D'
    else:
        data.environment = '3D'

    participantInfo.remove()

    # Return participant data
    viztask.returnValue(data)
예제 #19
0
	def __init__(self,canvas):
		vizinfo.InfoPanel.__init__(self, '',title='In Game',fontSize = 100,align=viz.ALIGN_CENTER_CENTER,icon=False,parent=canvas)
		
		self.name = 'ingame'
		self.canvas = canvas
		self.active = False
		self.getPanel().fontSize(50)
		self.setPanelVisible(viz.OFF, animate = False)
		self.menuVisible = False
		
		
		self.restart = self.addItem(viz.addButtonLabel('Restart'))
		self.end = self.addItem(viz.addButtonLabel('End game'))
		
		#Callbacks
		vizact.onbuttondown(self.restart, self.restartButton)
		vizact.onbuttondown(self.end, self.endButton)
		
		#change scale depending on display mode
		self.setScale(*[i*config.menuScale[self.name] for i in [1,1,1]])
예제 #20
0
def getParticipantInfo():

	#Add an InfoPanel with a title bar
	participantInfo = vizinfo.InfoPanel('',title='Participant Information',align=viz.ALIGN_CENTER, icon=False)

	#Add name and ID fields
	textbox_last = participantInfo.addLabelItem('Last Name',viz.addTextbox())
	textbox_first = participantInfo.addLabelItem('First Name',viz.addTextbox())
	textbox_id = participantInfo.addLabelItem('ID',viz.addTextbox())
	participantInfo.addSeparator(padding=(20,20))

	#Add gender and age fields
	radiobutton_male = participantInfo.addLabelItem('Male',viz.addRadioButton(0))
	radiobutton_female = participantInfo.addLabelItem('Female',viz.addRadioButton(0))
	droplist_age = participantInfo.addLabelItem('Age Group',viz.addDropList())
	ageList = ['20-30','31-40','41-50','51-60','61-70']
	droplist_age.addItems(ageList)
	participantInfo.addSeparator(padding=(20,20))
	
	#Add 2d 3D fields
	radiobutton_2D = participantInfo.addLabelItem('2D',viz.addRadioButton(1))
	radiobutton_3D = participantInfo.addLabelItem('3D',viz.addRadioButton(1))
	participantInfo.addSeparator(padding=(20,20))

	#Add submit button aligned to the right and wait until it's pressed
	submitButton = participantInfo.addItem(viz.addButtonLabel('Submit'),align=viz.ALIGN_RIGHT_CENTER)
	yield viztask.waitButtonUp(submitButton)

	#Collect participant data
	data = viz.Data()
	data.lastName = textbox_last.get()
	data.firstName = textbox_first.get()
	data.id = textbox_id.get()
	data.ageGroup = ageList[droplist_age.getSelection()]

	if radiobutton_male.get() == viz.DOWN:
		 data.gender = 'male'
	else:
		 data.gender = 'female'
		 
	if radiobutton_2D.get() == viz.DOWN:
		 data.environment = '2D'
	else:
		 data.environment = '3D'

	participantInfo.remove()

	# Return participant data
	viztask.returnValue(data)
예제 #21
0
    def __init__(self):

        viz.EventClass.__init__(self)
        self.callback(viz.BUTTON_EVENT, self.onButton)
        self.rowantext = """
_____                      _____           _   _
| __  |___ _ _ _ ___ ___   |__   |___ _____| |_|_|___
|    -| . | | | | .'|   |  |   __| . |     | . | | -_|
|__|__|___|_____|__,|_|_|  |_____|___|_|_|_|___|_|___|


 _____             _         _    _____     _   _
|   __|_ _ ___ _ _|_|_ _ ___| |  |   __|_ _|_|_| |___
|__   | | |  _| | | | | | .'| |  |  |  | | | | . | -_|
|_____|___|_|  \_/|_|\_/|__,|_|  |_____|___|_|___|___|



May  2004: Electrical and Computer Engineering Students work on a new
           bio-algorithm to create zombies for the Biology Department.

July 2004: The Biology Department finds a major bug in the algorithm, and
           expects them to all die off, so he hides them under the Engineering
           Building.

Feb  2014: The Zombies are still alive. Due to the Engineering Building sinking
           6 inches, the Zombies are extremely uncomfortable and ESCAPE.


Instructions: Fight off the zombies to get to the roof of the Engineering
              Building. From there, you will zipline to the Science Building
              where the Biology Department can give you a cure.
              Make sure to grab objects along the way, so you can increase your
              power and toughness

GOOD LUCK. No pressure, just all of our lives depend on you
"""

        vizcam.PivotNavigate(center=[15, -10, 0],
                             distance=70,
                             sensitivity=[1.0, 1.0])

        self.text_2D_world = viz.addText(self.rowantext, pos=[2, 2, 2])
        self.myButton = viz.addButtonLabel('continue', scene=1)  #Add a button.

        self.myButton.setPosition(.5, .8)  #Set its position.
        self.myButton.setScale(1, 1)  #Scale it.
        self.done = viztask.Signal()
예제 #22
0
def participantInfo():
	info.visible(viz.OFF)
	participantInfo = vizinfo.InfoPanel('',title='Participant Information',align=viz.ALIGN_CENTER, icon=False)
	textbox_last = participantInfo.addLabelItem('Last Name',viz.addTextbox())
	textbox_first = participantInfo.addLabelItem('First Name',viz.addTextbox())
	textbox_id = participantInfo.addLabelItem('ID',viz.addTextbox())
	participantInfo.addSeparator(padding=(20,20))

	submitButton = participantInfo.addItem(viz.addButtonLabel('Submit'),align=viz.ALIGN_RIGHT_CENTER)
	yield viztask.waitButtonUp(submitButton)

	data = viz.Data()
	data.lastName = textbox_last.get()
	data.firstName = textbox_first.get()
	data.id = textbox_id.get()
	participantInfo.remove()
	viztask.returnValue(data)
예제 #23
0
def participantInfo():

    manager.setDebug(viz.OFF)
    debugEventHandle.setEnabled(viz.OFF)

    # Hide info panel currently displayed
    info.visible(viz.OFF)

    # Add an InfoPanel with a title bar
    participantInfo = vizinfo.InfoPanel("", title="Participant Information", align=viz.ALIGN_CENTER, icon=False)

    # Add name and ID fields
    textbox_last = participantInfo.addLabelItem("Last Name", viz.addTextbox())
    textbox_first = participantInfo.addLabelItem("First Name", viz.addTextbox())
    textbox_id = participantInfo.addLabelItem("ID", viz.addTextbox())
    participantInfo.addSeparator(padding=(20, 20))

    # Add gender and age fields
    radiobutton_male = participantInfo.addLabelItem("Male", viz.addRadioButton(0))
    radiobutton_female = participantInfo.addLabelItem("Female", viz.addRadioButton(0))
    droplist_age = participantInfo.addLabelItem("Age Group", viz.addDropList())
    ageList = ["20-30", "31-40", "41-50", "51-60", "61-70"]
    droplist_age.addItems(ageList)
    participantInfo.addSeparator()

    # Add submit button aligned to the right and wait until it's pressed
    submitButton = participantInfo.addItem(viz.addButtonLabel("Submit"), align=viz.ALIGN_RIGHT_CENTER)
    yield viztask.waitButtonUp(submitButton)

    # Collect participant data
    data = viz.Data()
    data.lastName = textbox_last.get()
    data.firstName = textbox_first.get()
    data.id = textbox_id.get()
    data.ageGroup = ageList[droplist_age.getSelection()]

    if radiobutton_male.get() == viz.DOWN:
        data.gender = "male"
    else:
        data.gender = "female"

    participantInfo.remove()

    # Return participant data
    viztask.returnValue(data)
예제 #24
0
def participantInfo():
     #Turn off visibility of proximity sensors and disable toggle
    manager.setDebug(viz.OFF)
    debugEventHandle.setEnabled(viz.OFF)

    #Hide info panel currently displayed
    info.visible(viz.OFF)

    #Add an InfoPanel with a title bar
    participantInfo = vizinfo.InfoPanel('',title='Participant Information',align=viz.ALIGN_CENTER, icon=False)

    #Add name and ID fields
    textbox_last = participantInfo.addLabelItem('Last Name',viz.addTextbox())
    textbox_first = participantInfo.addLabelItem('First Name',viz.addTextbox())
    textbox_id = participantInfo.addLabelItem('ID',viz.addTextbox())
    participantInfo.addSeparator(padding=(20,20))

    #Add gender and age fields
    radiobutton_male = participantInfo.addLabelItem('Male',viz.addRadioButton(0))
    radiobutton_female = participantInfo.addLabelItem('Female',viz.addRadioButton(0))
    droplist_age = participantInfo.addLabelItem('Age Group',viz.addDropList())
    ageList = ['20-30','31-40','41-50','51-60','61-70']
    droplist_age.addItems(ageList)
    participantInfo.addSeparator()

    #Add submit button aligned to the right and wait until it's pressed
    submitButton = participantInfo.addItem(viz.addButtonLabel('Submit'),align=viz.ALIGN_RIGHT_CENTER)
    yield viztask.waitButtonUp(submitButton)
	
	#Collect participant data
    data = viz.Data()
    data.lastName = textbox_last.get()
    data.firstName = textbox_first.get()
    data.id = textbox_id.get()
    data.ageGroup = ageList[droplist_age.getSelection()]

    if radiobutton_male.get() == viz.DOWN:
         data.gender = 'male'
    else:
         data.gender = 'female'

    participantInfo.remove()

    # Return participant data
    viztask.returnValue(data)
예제 #25
0
파일: checkpoints.py 프로젝트: kevinsp/DvB
		def deleteCheckpoint1():

			checkpointnummer = textBox.get()
			infoBox.remove()
			globalVariables.windowOpen = False
			
			def removeCheckPointsPanel():
				checkPointsPanel.remove()
				okButton.remove()
		
			try:
				if (int(checkpointnummer)>0):
					del checkPointsList[int (checkpointnummer)-1] #Lösche Checkpoint
				else:
					raise
			except:
				checkPointsPanel = vizinfo.InfoPanel("Bitte nur Nummern im Bereich\nder verfügbaren Checkpoints eingeben.",align=viz.ALIGN_CENTER,fontSize=25,icon=False,key=None)
				checkPointsPanel.visible(True)
				#Erschaffe Bestätigungsbutton
				okButton = viz.addButtonLabel("Ok")
				okButton.setPosition(0.5,0.40)
				okButton.setScale(1,1)
				vizact.onbuttondown(okButton,removeCheckPointsPanel)
예제 #26
0
    def __init__(self, model, escena, gems, gemspos, gemcount, planes,
                 planespos, nextScene, gemsound, planesound):
        self.mine = viz.addChild(model, scene=escena)

        self.planeList = list()
        contpos = 0

        for x in planes:
            planeitem = Plane(x, planespos[contpos], escena,
                              nextScene[contpos], planesound)
            self.planeList.append(planeitem)
            contpos = contpos + 1

        self.btn_regresa = viz.addButtonLabel("regresar", scene=escena)
        self.btn_regresa.setPosition(0.9, 0.1)

        self.gemList = list()
        contpos = 0

        print escena
        for x in gems:
            gemitem = Gem(x, gemspos[contpos], escena, gemsound)
            self.gemList.append(gemitem)
            contpos = contpos + 1
예제 #27
0
파일: notes.py 프로젝트: kevinsp/DvB
		def porten():
			#Position abfragen und textbox + button entfernen
			noteNummer = noteBox.get()
			infoBox.remove()
			
			def removeNotePanel():
				notePanel.remove()
				okButton.remove()
			
			try:
				if (int(noteNummer)>0): #Prüfe eingabe und porte
					position = noteList[int(noteNummer)-1].getPosition()
					viz.MainView.setPosition(position[0], position[1], position[2]-0.5)
					tracker.setPosition(position[0], position[1], position[2]-0.5)
				else:
					raise
			except:
				notePanel = vizinfo.InfoPanel("Bitte nur Nummern im Bereich\nder verfügbaren 3D Notizen eingeben.",align=viz.ALIGN_CENTER,fontSize=25,icon=False,key=None)
				notePanel.visible(True)
				#Erschaffe Bestätigungsbutton
				okButton = viz.addButtonLabel("Ok")
				okButton.setPosition(0.5,0.40)
				okButton.setScale(1,1)
				vizact.onbuttondown(okButton,removeNotePanel)
예제 #28
0
	def __init__(self,win):
		
		viz.EventClass.__init__(self)
		self.callback(viz.BUTTON_EVENT,self.onButton)







		viz.cam.reset()
		vizcam.PivotNavigate(center=[15,-10,-2],

                             distance=70,

                             sensitivity=[1.0,1.0])
	
		if win:
			self.text='CONRGATRULATIONS: YOU WON. Well, YOU WON this level. But there is only one level'
		else:
			self.text='YOU LOSE. Oh well.'
		self.text_2D_world = viz.addText(self.text,pos=[2, 2, 2],scene=4)
		#self.myButton = viz.addButtonLabel('Play Again',scene=4) #Add a button.
		#Weird Issue resetting scenes , disabling fo rnow

		#self.myButton.setPosition(.5,.) #Set its position. 
		#self.myButton.setScale(1,1) #Scale it. 
		self.done=viztask.Signal()
		self.myquit = viz.addButtonLabel('Quit Game',scene=4) #Add a button.
	

		self.myquit.setPosition(.5,.5) #Set its position. 
		self.myquit.setScale(1,1) #Scale it. 
		self.done=viztask.Signal()
		self.continu=False
예제 #29
0
def participantInfo():
    #Add an InfoPanel with a title bar
    participantInfo = vizinfo.InfoPanel('',
                                        title='Participant Information',
                                        align=viz.ALIGN_CENTER,
                                        icon=False)

    #Add ID field
    textbox_id = participantInfo.addLabelItem('ID', viz.addTextbox())
    participantInfo.addSeparator(padding=(10, 10))

    #Add eye height field
    textbox_EH = participantInfo.addLabelItem('Eye Height (m)',
                                              viz.addTextbox())
    participantInfo.addSeparator(padding=(10, 10))

    #Add age field
    textbox_age = participantInfo.addLabelItem('Age', viz.addTextbox())
    participantInfo.addSeparator(padding=(10, 10))

    #Add gender field
    radiobutton_male = participantInfo.addLabelItem('Male',
                                                    viz.addRadioButton(0))
    radiobutton_female = participantInfo.addLabelItem('Female',
                                                      viz.addRadioButton(0))
    radiobutton_other = participantInfo.addLabelItem('Non-Binary',
                                                     viz.addRadioButton(0))
    participantInfo.addSeparator()

    #Add units field
    radiobutton_feet = participantInfo.addLabelItem('Feet',
                                                    viz.addRadioButton(1))
    radiobutton_meters = participantInfo.addLabelItem('Meters',
                                                      viz.addRadioButton(1))
    participantInfo.addSeparator()

    #Add submit button aligned to the right and wait until it's pressed
    submitButton = participantInfo.addItem(viz.addButtonLabel('Submit'),
                                           align=viz.ALIGN_RIGHT_CENTER)
    yield viztask.waitButtonUp(submitButton)

    #Collect participant data
    global data
    data = viz.Data()
    data_id = textbox_id.get()
    data_EH = textbox_EH.get()
    data_age = textbox_age.get()

    if radiobutton_male.get() == viz.DOWN:
        data.gender = 'm'
    elif radiobutton_female.get() == viz.DOWN:
        data.gender = 'f'
    else:
        data.gender = 'nb'

    if radiobutton_feet.get() == viz.DOWN:
        data.units = 'ft'
    else:
        data.units = 'm'

    participantInfo.remove()

    global IDNum
    IDNum = int(data_id)
    print IDNum
    global age
    age = float(data_age)
    global EHNum
    EHNum = float(data_EH)
    print age
    print EHNum
    print data.gender
    print data.units
예제 #30
0
	def __init__(self,canvas,controller):
		super(LayerMenu, self).__init__(canvas, 'layer', 'Layer Selection')
		
		# Store controller instance
		self.controller = controller
		
		#Store region, layer, and mode data from config to populate menu
		self.regions = config.OntologicalGroups.regions #collections.OrderedDict type
		self.layers = config.OntologicalGroups.layers #collections.OrderedDict type
		self.modes = config.MenuConfig.Modes
		self.getPanel().fontSize(50)
		
		#####################
		'''LAYER TAB PANEL SETUP'''
		#####################
		
		#creating tab panel tp 
		byRegionPanel = vizdlg.TabPanel(align = viz.ALIGN_LEFT_TOP, parent = canvas)
		
		#creating sub panels for tab panels(all layer data is stored in config.layers) storing sub panels in laypan
		layPan = {}
		
		for i, l in enumerate(self.regions.iteritems()):
			layPan[l[0]] = vizdlg.GridPanel(parent = canvas, fontSize = 50)
		
		#creating dict of checkboxes for layers
		self.checkBox = {}
		
		for key in self.regions.iterkeys():
			self.checkBox[key] = {}
			for cb in self.layers.iterkeys():
				self.checkBox[key][cb] = viz.addCheckbox(parent = canvas)
				
		#remove checkboxes from non-functioning region-layer selections
		for key in config.MenuConfig.RemoveCheckFromTab.iterkeys():
			for cb in config.MenuConfig.RemoveCheckFromTab[key]:
				self.checkBox[key][cb].disable()
		
		#populate panels with layers and checkboxes
		for i in self.regions.iterkeys():
			for j in self.layers.iterkeys():
				layPan[i].addRow([viz.addText(j), self.checkBox[i][j]])
			byRegionPanel.addPanel(i, layPan[i], align = viz.ALIGN_LEFT_TOP)
		
		#############################################
		"""CREATE TOTAL LAYER SELECTION CHECKBOXES"""
		#############################################
		
		#creating grib panel to put checkboxes on
		selectAllPanel = vizdlg.GridPanel(parent = canvas, fontSize = 50)
		
		#creating checkboxes
		self.selectAllOf = {}
		
		for i in self.layers.iterkeys():
			self.selectAllOf[i] = viz.addCheckbox(parent = canvas)
		
		#adding checkboxes to panel
		for i in self.layers:
			selectAllPanel.addRow([viz.addText('Load All ' + i, fontSize = 50), self.selectAllOf[i]])
		
		###################################
		'''CREATE START AND STOP BUTTONS'''
		###################################
		
		#creating grid panels to add start and back buttons to
		setGrid = vizdlg.GridPanel(parent = canvas)
		
		#create back and start buttons and add to grid panel
		backButton = viz.addButtonLabel('Back')
		startButton = viz.addButtonLabel('Start')
		setGrid.addRow([backButton, startButton])
		
		#add back and state button actions
		vizact.onbuttondown(backButton, self.controller.backMenu)
		vizact.onbuttondown(startButton, lambda: viztask.schedule(self.controller.start))
		
		############################
		'''ADD ITEMS TO GAME MENU'''
		############################
		
		#add tab panel to info panel
		byRegionPanel.setCellPadding(5)
		self.addItem(byRegionPanel, align = viz.ALIGN_LEFT_TOP)
		
		#add grid panel to info panel
		self.addItem(selectAllPanel, align = viz.ALIGN_LEFT_TOP)
	
		#start and back buttons
		self.addItem(setGrid, align = viz.ALIGN_RIGHT_TOP)
		
		#change scale depending on display mode
		self.setScale(*[i*config.menuScale[self.name] for i in [1,1,1]])
		
		#rendering
		bb = self.getBoundingBox()
		self.canvas.setRenderWorldOverlay([bb.width*1.8, bb.height*1.8], fov = bb.height*.1, distance = 1)

		#############################
		"""BUTTON CALLBACK"""
		#############################
		
		viz.callback(viz.BUTTON_EVENT, controller.onAllSelection)
예제 #31
0
	info.setPanelVisible(True)
	chime_sound.play()

#vizact.ontimer(0,UpdateMovement)

current_scene = 0

#################################################################
#################################################################

#Escenario1
mine = viz.addChild(model['mundo1'], scene = viz.Scene1)
gem = viz.addChild(item['gem'], scene = viz.Scene1)
gem.setScale(2.5,2.5,2.5)
gem.setPosition(10,5)
btn_regresa = viz.addButtonLabel("regresar", scene = viz.Scene1)
btn_regresa.setPosition(0.9,0.1)

rock = viz.addChild(item['gem'], scene = viz.Scene1)
rock.setScale(2.5,2.5,2.5)
rock.setPosition(-30,4)

canvas = viz.addGUICanvas()
canvas.alignment(viz.ALIGN_CENTER)
viz.MainWindow.setDefaultGUICanvas(canvas)
info = vizinfo.InfoPanel('AVERNO', align=viz.ALIGN_RIGHT_TOP, icon=False)
info.setTitle( 'Ejemplo' )
info.setPanelVisible(False)
#canvas.setRenderWorldOverlay([600,500],50,3)
canvas.setRenderWorld([600,500],[3,viz.AUTO_COMPUTE])
canvas.setPosition([-30,5,2])
예제 #32
0
transfer_shader_radio = viz.addRadioButton(parent = viz.SCREEN, group = shader_radio_group)
transfer_shader_radio.setScale(0.5, 0.5, 0.5)
transfer_shader_radio.setPosition(0.085, 0.95)

lighting_shader_radio_text = viz.addText("Lighting Shader:", parent = viz.SCREEN)
lighting_shader_radio_text.setPosition(0.01, 0.975)
lighting_shader_radio_text.scale( 0.1, 0.1, 0.1 )
lighting_shader_radio_text.alignment( viz.ALIGN_LEFT_CENTER)

transfer_shader_radio_text = viz.addText("Transfer Shader:", parent = viz.SCREEN)
transfer_shader_radio_text.setPosition(0.01, 0.95)
transfer_shader_radio_text.scale( 0.1, 0.1, 0.1 )
transfer_shader_radio_text.alignment( viz.ALIGN_LEFT_CENTER)

#Enable light location
light_placement_button = viz.addButtonLabel(" Light Placement ", parent = viz.SCREEN)
light_placement_button.setScale( 0.3, 0.3, 0.3 )
light_placement_button.setPosition( 0.035, 0.925 )

LIGHT_PLACEMENT_FLAG = False

uvw_transform_manager = UVWTransform.UVWTransformManager(render_volume )

def loadState(state):
	tool_manager.loadState(state)
	
def onUpdate( updateNum ):
	vector = viz.MainView.getMatrix().getForward()
	volume_region_extension.command( command = 1, x = vector[0], y = vector[1], z = vector[2] * -1.0)

def onSlider( obj, pos ):
예제 #33
0
파일: startmenu.py 프로젝트: dgo721/averno
	if abs(y) > 0.2:
		viz.MainView.move([0,0,-y*0.1],viz.BODY_ORI)
	if abs(z) > 0.2:
		viz.MainView.move([0,-z*0.1,0],viz.BODY_ORI)
	if abs(twist) > 0.2:
		viz.MainView.setEuler([twist,0,0],viz.BODY_ORI,viz.REL_PARENT)
	if abs(ry) > 0.2:
		viz.MainView.setEuler([0,ry,0],viz.HEAD_ORI,viz.REL_PARENT)
	if abs(rx) > 0.2:
		viz.MainView.setEuler([rx,0,0],viz.BODY_ORI,viz.REL_PARENT)
	if abs(rz) > 0.2:
		viz.MainView.setEuler([0,0,rz],viz.BODY_ORI,viz.REL_PARENT)

#Escenario
mine = viz.addChild("models/AbernoL04.obj", scene = viz.Scene1)
btn_regresa = viz.addButtonLabel("regresar", scene = viz.Scene1)
btn_regresa.setPosition(0.9,0.1)
	
vizact.onbuttonup(btn_regresa, returntoMenu)

#GUI inicial
bgTexture = viz.add("img/Portada_Averno_1024.jpg")
quad_bgtexture = viz.addTexQuad(parent = viz.SCREEN, scene = viz.Scene2)
quad_bgtexture.texture(bgTexture)
quad_bgtexture.setScale(12.8,10.24,0) #Escala a pantalla completa
quad_bgtexture.setPosition(0.5, 0.5) #Centro de pantalla
viz.scene(viz.Scene2) #Mostrar escena 2

#Botones de interaccion
btn_newGame = viz.addButton(scene = viz.Scene2)
btn_newGame.setPosition(0.75,0.75)
예제 #34
0
if TYPICAL_GUI_CANVAS:
	# Create canvas for displaying GUI objects
	canvas = viz.addGUICanvas()
	canvas.alignment(viz.ALIGN_CENTER)

	# Set canvas as default so all GUI objects are automatically added to it
	viz.MainWindow.setDefaultGUICanvas(canvas)

	controlPanel = vizinfo.InfoPanel(text='Navigate with WASD', title='Canvas Example')

	controlPanel.addSection('Render Mode')
	radio_world_overlay = controlPanel.addLabelItem('World Overlay', viz.addRadioButton('RenderMode'))
	radio_world = controlPanel.addLabelItem('World', viz.addRadioButton('RenderMode'))
	radio_screen_ortho = controlPanel.addLabelItem('Screen Ortho', viz.addRadioButton('RenderMode'))
	radio_world_overlay.set(1)

	controlPanel.addSeparator()
	manual_cursor = controlPanel.addLabelItem('Manual Cursor',viz.addCheckbox())
	select_world = controlPanel.addItem(viz.addButtonLabel('Select World'))


	canvas.setRenderWorldOverlay([800,600],40,3)

if NODE3D_CANVAS:
	pigeon = viz.addAvatar('pigeon.cfg',scale=[200]*3)
	pigeon.addAction(vizact.spin(0,1,0,45))
	pigeon.enable(viz.DEPTH_TEST,op=viz.OP_ROOT)

	#Add the pigeon to the panel
	panel = vizinfo.InfoPanel('Find the pigeons before they fly away',align=viz.ALIGN_CENTER,fontSize=22,icon=False)
	panel.addItem(pigeon,align=viz.ALIGN_CENTER)
예제 #35
0
    def __init__(self, canvas, controller):
        super(LayerMenu, self).__init__(canvas, 'layer', 'Layer Selection')

        # Store controller instance
        self.controller = controller

        #Store region, layer, and mode data from config to populate menu
        self.regions = config.OntologicalGroups.regions  #collections.OrderedDict type
        self.layers = config.OntologicalGroups.layers  #collections.OrderedDict type
        self.modes = config.MenuConfig.Modes
        self.getPanel().fontSize(50)

        #####################
        '''LAYER TAB PANEL SETUP'''
        #####################

        #creating tab panel tp
        byRegionPanel = vizdlg.TabPanel(align=viz.ALIGN_LEFT_TOP,
                                        parent=canvas)

        #creating sub panels for tab panels(all layer data is stored in config.layers) storing sub panels in laypan
        layPan = {}

        for i, l in enumerate(self.regions.iteritems()):
            layPan[l[0]] = vizdlg.GridPanel(parent=canvas, fontSize=50)

        #creating dict of checkboxes for layers
        self.checkBox = {}

        for key in self.regions.iterkeys():
            self.checkBox[key] = {}
            for cb in self.layers.iterkeys():
                self.checkBox[key][cb] = viz.addCheckbox(parent=canvas)

        #remove checkboxes from non-functioning region-layer selections
        for key in config.MenuConfig.RemoveCheckFromTab.iterkeys():
            for cb in config.MenuConfig.RemoveCheckFromTab[key]:
                self.checkBox[key][cb].disable()

        #populate panels with layers and checkboxes
        for i in self.regions.iterkeys():
            for j in self.layers.iterkeys():
                layPan[i].addRow([viz.addText(j), self.checkBox[i][j]])
            byRegionPanel.addPanel(i, layPan[i], align=viz.ALIGN_LEFT_TOP)

        #############################################
        """CREATE TOTAL LAYER SELECTION CHECKBOXES"""
        #############################################

        #creating grib panel to put checkboxes on
        selectAllPanel = vizdlg.GridPanel(parent=canvas, fontSize=50)

        #creating checkboxes
        self.selectAllOf = {}

        for i in self.layers.iterkeys():
            self.selectAllOf[i] = viz.addCheckbox(parent=canvas)

        #adding checkboxes to panel
        for i in self.layers:
            selectAllPanel.addRow([
                viz.addText('Load All ' + i, fontSize=50), self.selectAllOf[i]
            ])

        ###################################
        '''CREATE START AND STOP BUTTONS'''
        ###################################

        #creating grid panels to add start and back buttons to
        setGrid = vizdlg.GridPanel(parent=canvas)

        #create back and start buttons and add to grid panel
        backButton = viz.addButtonLabel('Back')
        startButton = viz.addButtonLabel('Start')
        setGrid.addRow([backButton, startButton])

        #add back and state button actions
        vizact.onbuttondown(backButton, self.controller.backMenu)
        vizact.onbuttondown(startButton,
                            lambda: viztask.schedule(self.controller.start))

        ############################
        '''ADD ITEMS TO GAME MENU'''
        ############################

        #add tab panel to info panel
        byRegionPanel.setCellPadding(5)
        self.addItem(byRegionPanel, align=viz.ALIGN_LEFT_TOP)

        #add grid panel to info panel
        self.addItem(selectAllPanel, align=viz.ALIGN_LEFT_TOP)

        #start and back buttons
        self.addItem(setGrid, align=viz.ALIGN_RIGHT_TOP)

        #change scale depending on display mode
        self.setScale(*[i * config.menuScale[self.name] for i in [1, 1, 1]])

        #rendering
        bb = self.getBoundingBox()
        self.canvas.setRenderWorldOverlay([bb.width * 1.8, bb.height * 1.8],
                                          fov=bb.height * .1,
                                          distance=1)

        #############################
        """BUTTON CALLBACK"""
        #############################

        viz.callback(viz.BUTTON_EVENT, controller.onAllSelection)
예제 #36
0
PCB_GUI[7].addItem(viz.addText(LARGEST))
PCB_GUI[8].addItem(viz.addText(EVEN))
PCB_GUI[9].addItem(viz.addText(SQRT))

PID = 0  #PROCESS id
TIMESLICE = 5  #tIME SLICE
ACTUALTIME = 0

PC = 0

END = False

procspace = vizdlg.Panel(layout=vizdlg.LAYOUT_HORZ_CENTER,
                         align=viz.ALIGN_CENTER_CENTER,
                         border=False)
START = procspace.addItem(viz.addButtonLabel("    Start OS     "))
START.fontSize(25)


def RunProgram(prg, timeslice, pc):
    global PGCOMPLETE
    global END
    #	global output
    #	listitems=output.getItems()
    #		#clear output
    #	for i in listitems:
    #		output.removeItem(i,True)
    #-------------------------------
    oldpc = pc
    global PC
    global PID
    def participant_info():
        """
        Query the participant for basic data.

        Questions to select experimental condition and control type of the experimental condition.

        Returns: the queried data as a viz.data object

        """

        participant_info = vizinfo.InfoPanel('', title='Participant Information', align=viz.ALIGN_CENTER, icon=False)

        # query control style droplist; Create a drop-down list
        drop_control_style = participant_info.addLabelItem('Choose control style', viz.addDropList())
        items = ['dk2 head & right hand', 'mouse and keyboard'] # 'mouse and keyboard', 'joystick', 'dk2 head only', 'dk2 head wiimote',
        drop_control_style.addItems(items)

        # Add name and ID fields of maze configurations
        drop_maze_config = participant_info.addLabelItem('Choose maze configuration', viz.addDropList())
        items2 = ['auto', 'baseline', 'training', 'I', 'L', 'Z', 'U']#, 'T', '+']  # Add a list of items.
        drop_maze_config.addItems(items2)

        # Add name and ID fields of experimental condition
        drop_maze_run = participant_info.addLabelItem('Choose maze run', viz.addDropList())
        items2 = ['auto', '1', '2', '3']
        drop_maze_run.addItems(items2)

        participant_info.addSeparator(padding=(10, 10))

        textbox_id = participant_info.addLabelItem('ID', viz.addTextbox())
        textbox_age = participant_info.addLabelItem('Age', viz.addTextbox())
        textbox_handedness = participant_info.addLabelItem('Handedness', viz.addTextbox())
        textbox_vision = participant_info.addLabelItem('Vision', viz.addTextbox())
        textbox_cap_size = participant_info.addLabelItem('Cap size', viz.addTextbox())
        textbox_neck_size = participant_info.addLabelItem('Neck size', viz.addTextbox())
        textbox_labelscheme = participant_info.addLabelItem('Electrode Labelscheme', viz.addTextbox())

        participant_info.addSeparator(padding=(10, 10))

        # Add gender and age fields
        radiobutton_male = participant_info.addLabelItem('Male', viz.addRadioButton(2))
        radiobutton_female = participant_info.addLabelItem('Female', viz.addRadioButton(2))

        participant_info.addSeparator(padding=(10, 10))

        # Add submit button aligned to the right and wait until it's pressed
        submit_button = participant_info.addItem(viz.addButtonLabel('Submit'), align=viz.ALIGN_CENTER)
        yield viztask.waitButtonUp(submit_button)

        # Collect participant data
        data = viz.Data()
        data.id = textbox_id.get()
        data.age = textbox_age.get()
        data.handedness = textbox_handedness.get()
        data.vision = textbox_vision.get()
        data.cap_size = textbox_cap_size.get()
        data.neck_size = textbox_neck_size.get()
        data.labelscheme = textbox_labelscheme.get()

        if radiobutton_male.get() == viz.DOWN:
            data.sex = 'male'
        else:
            data.sex = 'female'

        # Find the index of the current selection. Find the selection itself.
        data.control_style = drop_control_style.getItems()[drop_control_style.getSelection()]
        data.maze_config = drop_maze_config.getItems()[drop_maze_config.getSelection()]
        data.maze_run = drop_maze_run.getItems()[drop_maze_run.getSelection()]

        participant_info.remove()

        # Return participant data
        viztask.returnValue(data)
예제 #38
0
    def __init__(self, canvas):
        vizinfo.InfoPanel.__init__(self,
                                   '',
                                   title='Game Menu',
                                   fontSize=100,
                                   align=viz.ALIGN_CENTER_CENTER,
                                   icon=False,
                                   parent=canvas)
        self.layers = config.layers
        self.modes = config.modes

        self.name = 'game'
        self.canvas = canvas
        self.active = False
        self.getPanel().fontSize(50)
        self.setPanelVisible(viz.OFF, animate=False)

        self.menuVisible = False

        #####################
        '''LAYER TAB PANEL SETUP'''
        #####################

        #creating tab panel tp
        tp = vizdlg.TabPanel(align=viz.ALIGN_LEFT_TOP, parent=canvas)

        #creating sub panels for tab panels(all layer data is stored in config.layers) storing sub panels in laypan
        layPan = {}

        for i, l in enumerate(self.layers):
            layPan[l] = vizdlg.GridPanel(parent=canvas)

        #creating dict of checkboxes for layers
        self.checkBox = {}

        for cb in [cb for l in self.layers.values() for cb in l]:
            self.checkBox[cb] = viz.addCheckbox(parent=canvas)

        #add layers and textboxes to panels
        for i in self.layers:
            for j in self.layers[i]:
                layPan[i].addRow([viz.addText(j), self.checkBox[j]])
            tp.addPanel(i, layPan[i], align=viz.ALIGN_LEFT_TOP)

        ###############################################
        '''CREATING MODES PANEL'''
        ###############################################

        #creating labels for modes
        self.modeLabels = {}

        for l in self.modes.keys():
            self.modeLabels[l] = viz.addText(l, parent=canvas)

        #creating radio buttons for modes
        self.modeGroup = viz.addGroup(parent=canvas)
        self.radioButtons = {}

        for rb in self.modes.keys():
            self.radioButtons[rb] = viz.addRadioButton(self.modeGroup,
                                                       parent=canvas)

        #creating grid panel to add mode to
        modeGrid = vizdlg.GridPanel(parent=canvas)

        #adding modes and radio buttons to grid panel
        for i in self.modes.keys():
            modeGrid.addRow([self.modeLabels[i], self.radioButtons[i]])

        ###################################
        '''CREATE START AND STOP BUTTONS'''
        ###################################

        #creating grid panels to add start and back buttons to
        setGrid = vizdlg.GridPanel(parent=canvas)

        #create back and start buttons and add to grid panel
        backButton = viz.addButtonLabel('Back')
        startButton = viz.addButtonLabel('Start')
        setGrid.addRow([backButton, startButton])

        #add back and state button actions
        vizact.onbuttondown(backButton, self.back)
        vizact.onbuttondown(startButton, self.start)

        ############################
        '''ADD ITEMS TO GAME MENU'''
        ############################

        #directions
        self.addItem(viz.addText(
            'Select Parts of the Skeletal System You Wish to Puzzle and Select a Mode:',
            parent=canvas),
                     fontSize=30,
                     align=viz.ALIGN_LEFT_TOP)

        #add tab panel to info panel
        tp.setCellPadding(5)
        self.addItem(tp, align=viz.ALIGN_LEFT_TOP)

        #modes
        self.addItem(modeGrid, align=viz.ALIGN_LEFT_TOP)

        #start and back buttons
        self.addItem(setGrid, align=viz.ALIGN_RIGHT_TOP)

        #change scale depending on display mode
        self.setScale(*[i * config.menuScale[self.name] for i in [1, 1, 1]])

        #rendering
        bb = self.getBoundingBox()
        self.canvas.setRenderWorldOverlay([bb.width * 1.8, bb.height * 1.8],
                                          fov=bb.height * .1,
                                          distance=1)
예제 #39
0
	def __init__(self,canvas):
		vizinfo.InfoPanel.__init__(self, '',title = 'Game Menu',fontSize = 100,align=viz.ALIGN_CENTER_CENTER,icon=False,parent= canvas)
		self.layers = config.layers
		self.modes = config.modes
		
		self.name = 'game'
		self.canvas = canvas
		self.active = False
		self.getPanel().fontSize(50)
		self.setPanelVisible(viz.OFF, animate = False)

		self.menuVisible = False	
		
		#####################
		'''LAYER TAB PANEL SETUP'''
		#####################
		
		#creating tab panel tp 
		tp = vizdlg.TabPanel(align = viz.ALIGN_LEFT_TOP, parent = canvas)
		
		#creating sub panels for tab panels(all layer data is stored in config.layers) storing sub panels in laypan
		layPan = {}
		
		for i, l in enumerate(self.layers):
			layPan[l] = vizdlg.GridPanel(parent = canvas)
		
		#creating dict of checkboxes for layers
		self.checkBox = {}
		
		for cb in [cb for l in self.layers.values() for cb in l]:
			self.checkBox[cb] = viz.addCheckbox(parent = canvas)
		
		#add layers and textboxes to panels
		for i in self.layers:
			for j in self.layers[i]:
				layPan[i].addRow([viz.addText(j), self.checkBox[j]])
			tp.addPanel(i, layPan[i], align = viz.ALIGN_LEFT_TOP)
		
		###############################################
		'''CREATING MODES PANEL'''
		###############################################
		
		#creating labels for modes
		self.modeLabels = {}
		
		for l in self.modes.keys():
			self.modeLabels[l] = viz.addText(l, parent = canvas)
		
		#creating radio buttons for modes
		self.modeGroup = viz.addGroup(parent = canvas)
		self.radioButtons = {}
		
		for rb in self.modes.keys():
			self.radioButtons[rb] = viz.addRadioButton(self.modeGroup, parent = canvas)
		
		#creating grid panel to add mode to
		modeGrid = vizdlg.GridPanel(parent = canvas)
		
		#adding modes and radio buttons to grid panel
		for i in self.modes.keys():
			modeGrid.addRow([self.modeLabels[i], self.radioButtons[i]])
		
		###################################
		'''CREATE START AND STOP BUTTONS'''
		###################################
		
		#creating grid panels to add start and back buttons to
		setGrid = vizdlg.GridPanel(parent = canvas)
		
		#create back and start buttons and add to grid panel
		backButton = viz.addButtonLabel('Back')
		startButton = viz.addButtonLabel('Start')
		setGrid.addRow([backButton, startButton])
		
		#add back and state button actions
		vizact.onbuttondown(backButton, self.back)
		vizact.onbuttondown(startButton, self.start)
		
		############################
		'''ADD ITEMS TO GAME MENU'''
		############################
		
		#directions
		self.addItem(viz.addText('Select Parts of the Skeletal System You Wish to Puzzle and Select a Mode:', parent = canvas), fontSize = 30, align = viz.ALIGN_LEFT_TOP)
		
		#add tab panel to info panel
		tp.setCellPadding(5)
		self.addItem(tp, align = viz.ALIGN_LEFT_TOP)
		
		#modes
		self.addItem(modeGrid, align = viz.ALIGN_LEFT_TOP)
	
		#start and back buttons
		self.addItem(setGrid, align = viz.ALIGN_RIGHT_TOP)
		
		#change scale depending on display mode
		self.setScale(*[i*config.menuScale[self.name] for i in [1,1,1]])
		
		#rendering
		bb = self.getBoundingBox()
		self.canvas.setRenderWorldOverlay([bb.width*1.8, bb.height*1.8], fov = bb.height*.1, distance = 1)