はじめまして。現在大学4年で心理学を専攻している学生です。
卒論で行う実験の作成に教授からHSPを勧められ、1ヶ月前くらいから取りくんでいるん
ですが、わからない点がいろいろと出てきたので、お手数ですがご教授いただけると非常
に助かりますm(__)m
下のスクリプトのような実験を行おうとしているのですが、
(1)現状右から左へ動く○の移動時間は目分量でだいたい1800msくらいにしている状態なの
ですが、スクリプトの上で1800msの移動時間に設定するにはどのように書けばいいのでしょ
うか?
(2)現状1ブロック終了毎に被験者の5試行目の反応の評価だけを表示している状態ですが、
5試行目終了後に1~5試行の評価を一つの画面ですべて表示するにはどのようにすればい
いのでしょうか?
1 素晴らしい!(100ms以内)
このように 2 なかなかです(200ms以内)
したいのですが→ 3 がんばりましょう(400ms以内)
4 素晴らしい!(100ms以内)
5 全然タイミングが違います(400ms範囲外)
※本番の実験では左端の四角い枠内はずっと黒いままで行い、実際にどのタイミングで
○が左端に来るのか被験者はわからない状態にするのですが、現在は作成途中という
ことで左端に○が到達して、見えるようになってしまっています。
スクリプトは以下になります。拙い点が多々あると思いますがよろしくお願いします。
pre
#uselib "kernel32"
#func QueryPFreq "QueryPerformanceFrequency" var
#func QueryPCount "QueryPerformanceCounter" var
dim lgint, 4 ;LARGE_INTEGER構造体
#define _start QueryPFreq nFreq : QueryPCount nBefore
#define _goal QueryPCount lgint(2) : dwTime=strf("%%.3fmSec", 1000.*(lgint(2)-nBefore)/nFreq)
a=0
screen 0, ginfo (20), ginfo (21)
color : boxf
font msmincho, 30:pos 100,150:color 255,255,255
mes"・この実験では右から左へ移動する●が、"
pos 100,180:mes" 左端の四角い枠内の位置にくると思われるタイミングを予測して"
pos 100,210:mes" ストップボタンを押していただきます。"
pos 100,300:mes"・実験は5試行を1ブロックとし、計20ブロック行います。"
pos 100,390:mes"・準備ができたら下の実験開始ボタンを押して、"
pos 100,420:mes" 実験を開始してください。"
pos 500,550:button "実験開始",*hata0
stop
*hata0
b=0
screen 0, ginfo (20), ginfo (21)
color : boxf
color 255, 255, 255
boxf 65, 300, 950, 350
color 0,0,0
boxf 500, 306, 944, 344
color
boxf 69, 306, 109, 344
pos 500, 470 :button "ストップ" ,*hata1
while ( b < 5 )
await 2000
b = b + 1
kaisu = 140 ;繰り返し回数
x1 = 60 ;開始位置
x2 = 900 ;終了位置
y = 306 ;Y座標
dx = (x2 - x1) / kaisu ;移動量
_start
repeat kaisu
redraw 0
color :boxf
color 255, 255, 255
boxf 65, 300, 950, 350
color 0,0,0
boxf 500, 306, 944, 344
color
boxf 69, 306, 109, 344
color 255, 255, 255
mes "●" : font msmincho, 37
pos x2 - dx * cnt, y ;座標指定(x,y)
await 1
redraw 1
loop
stop
*hata1
_goal
title dwTime
notesel data
noteadd dwTime
notesave "hsp-test0"
wend
if 100 >= int(dwTime)-1800&int(dwTime)-1800>= 0|0 >int(dwTime)-1800&int(dwTime)-1800>=-100{
screen 0, ginfo (20), ginfo (21)
color : boxf:color 255, 255, 255:font msmincho, 37:pos 100,300
mes "素晴らしい!(100ms以内)"
}else :if 200>=int(dwTime)-1800&int(dwTime)-1800>100|-100>int(dwTime)-1800&int(dwTime)-1800>=-200{
screen 0, ginfo (20), ginfo (21)
color : boxf:color 255, 255, 255:font msmincho, 37:pos 100,300
mes "なかなかです(200ms以内)"
}else :if 300>=int(dwTime)-1800&int(dwTime)-1800>200|-200>int(dwTime)-1800&int(dwTime)-1800>=-300{
screen 0, ginfo (20), ginfo (21)
color : boxf:color 255, 255, 255:font msmincho, 37:pos 100,300
mes "普通です(300ms以内)"
}else :if 400>=int(dwTime)-1800&int(dwTime)-1800>300|-300>int(dwTime)-1800&int(dwTime)-1800>=-400{
screen 0, ginfo (20), ginfo (21)
color : boxf:color 255, 255, 255:font msmincho, 37:pos 100,300
mes "がんばりましょう(400ms以内)"
}else :if int(dwTime)-1800>400|-400>int(dwTime)-1800{
screen 0, ginfo (20), ginfo (21)
color : boxf:color 255, 255, 255:font msmincho, 37:pos 100,300
mes "全然タイミングが違います(400ms範囲外)"}
await 3000
goto *hata2
*hata2
a=a+1
await 3000
if a<3{goto *hata0}
color:boxf:color 255, 255, 255:pos 300,300 :font msmincho, 37:mes "実験は以上で終了です。"
pos 300,335 :mes "ありがとうございました。"
stop
/pre