# Generated by OpenSesame 0.27.4 (Frisky Freud)
# Tue Mar 11 10:36:55 2014 (nt)
# <http://www.cogsci.nl/opensesame>
set mouse_backend "legacy"
set subject_parity "even"
set height "768"
set font_family "mono"
set font_italic "no"
set custom_cursor "no"
set synth_backend "legacy"
set title "New experiment"
set coordinates "relative"
set start "experiment"
set sampler_backend "legacy"
set transparent_variables "no"
set foreground "white"
set font_bold "no"
set description "Default description"
set background "black"
set font_size "20"
set keyboard_backend "legacy"
set canvas_backend "legacy"
set compensation "0"
set subject_nr "0"
set width "1024"
define sketchpad welcome
set duration "keypress"
set start_response_interval "no"
set description "Displays stimuli"
draw textline 0 0 "OpenSesame 0.27 'Frisky Freud'" center=1 color=white font_family="serif" font_size=32 font_italic=no font_bold=no show_if="always" html="yes"
define inline_script _inline_script
___run__
global n_product
n_product=5
__end__
set _prepare ""
set description "Executes Python code"
define notepad getting_started
__note__
Hi,
Welcome to OpenSesame 0.27 "Frisky Freud"!
If you are new to OpenSesame, you may wish to follow the tutorial,
which can be found online.
There are also many example experiments, which may help you to get
started with creating your own. These can be found in the "examples"
folder provided with OpenSesame or, again, online,
For more information, please refer to OpenSesame documentation area:
<http://osdoc.cogsci.nl/>
And feel free to ask for help on the forum:
<http://forum.cogsci.nl/>
Have fun with OpenSesame!
--
Sebastiaan
__end__
set description "Some pointers to help you get started!"
define sequence experiment
run inline_script "always"
run logger "always"
define inline_script inline_script
___run__
from openexp.canvas import canvas
from openexp.mouse import mouse
my_canvas1 = canvas(self.experiment)
my_mouse = mouse(self.experiment, timeout=20)
my_canvas2 = canvas(self.experiment)
#Set Number of products
n_product=3
#Set attribute to be rated
C1 = ("Rate these products on roughness")
#C2 = ("Dry")
#C3 = ("Smooth")
C1_left= ("Very much")
C1_right= ("Very less")
#Set Product names
P1= ("Pro1")
P2= ("Pro2")
P3= ("Pro3")
# Set slider dimensions
slider_w = 700
slider_h = 10
#width (1024) and height (768) are dependent on backend settings; make changes to these settings according to number of products
# Set positions of sliders
slider_x_P1 = self.get("width")/2-slider_w/2
slider_y_P1 = self.get("height")/4 -slider_h/2
slider_x_P2 = self.get("width")/2-slider_w/2
slider_y_P2 = self.get("height")/2-slider_h/2
slider_x_P3 = self.get("width")/2-slider_w/2
slider_y_P3 = self.get("height") * 3/4 -slider_h/2
while True:
# Determine the slider fill based on the mouse position
pos, time = my_mouse.get_pos()
x, y = pos
slider_fill_P1 = min(slider_w, max(0, x-slider_x_P1))
slider_fill_P2 = min(slider_w, max(0, x-slider_x_P2))
slider_fill_P3 = min(slider_w, max(0, x-slider_x_P3))
my_canvas1.set_bgcolor ('white')
my_canvas1.set_fgcolor('blue')
my_canvas1.clear()
# Draw the active text
my_canvas1.text((C1), y=slider_y_P1-100)
my_canvas1.text((P1), y=slider_y_P1-20)
my_canvas1.text(C1_left, x=slider_x_P1 - 100, y=slider_y_P1)
my_canvas1.text(C1_right, x=slider_x_P1 + 800, y=slider_y_P1)
# Draw the slider frame
my_canvas1.rect(slider_x_P1, slider_y_P1, slider_w, slider_h)
# Draw the slider fill
my_canvas1.rect(slider_x_P1, slider_y_P1, slider_fill_P1, slider_h, fill=True)
# Draw the mouse cursor
my_canvas1.arrow(x+20, y+10, x, y)
# Draw the second slider frame
my_canvas1.text((P2), y=slider_y_P2-20)
my_canvas1.text(C1_left, x=slider_x_P2 - 100, y=slider_y_P2)
my_canvas1.text(C1_right, x=slider_x_P2 + 800, y=slider_y_P2)
my_canvas1.rect(slider_x_P2, slider_y_P2, slider_w, slider_h)
# Draw the slider fill
my_canvas1.rect(slider_x_P2, slider_y_P2, slider_fill_P2, slider_h, fill=True)
# Draw the third slider frame
my_canvas1.text((P3), y=slider_y_P3-20)
my_canvas1.text(C1_left, x=slider_x_P3 - 100, y=slider_y_P3)
my_canvas1.text(C1_right, x=slider_x_P3 + 800, y=slider_y_P3)
my_canvas1.rect(slider_x_P3, slider_y_P3, slider_w, slider_h)
# Draw the slider fill
my_canvas1.rect(slider_x_P3, slider_y_P3, slider_fill_P3, slider_h, fill=True)
my_canvas1.show()
# Poll the mouse for buttonclicks
n_click = 0
while n_click <= n_product:
button, position, timestamp = my_mouse.get_click(timeout=20)
n_click = n_click+1
#if button != None:
#break
slider_percent = 100.0*slider_fill_P1/slider_w
self.experiment.set('slider_percent_%d' %n_click, slider_percent)
__end__
set _prepare ""
set description "Executes Python code"
define form_base form_base
widget 0 0 1 1 label text="Is this product good?"
widget 0 1 1 1 rating_scale var="response" nodes="Agree;Don't know;Disagree"
define logger logger
set ignore_missing "yes"
set description "Logs experimental data"
set auto_log "no"
set use_quotes "yes"
log "slider_percent_1"
log "slider_percent_2"
log "slider_percent_3"