概要
反応時間を計測するサンプルコードです。
緑色の円が表示されたらキーボードのキーをどれでもいいので押して下さい(zキーとか)。
押されたキーのキー番号と、円が出てからキーが押されるまでの時間(RT)が画面左上に表示されます。
実行例
注意:ブラウザが IE だとブラウザ上のデモ画面が表示されない可能性が高いです。なるべく新しいバージョンの Chrome や Firefox をお使いください。
プログラムコード
int state = 0; int baseTime; int response; int RT; void setup(){ size( 800, 600 ); frameRate( 60 ); noStroke(); state = 0; baseTime = millis(); response = 0; RT = 0; textFont( createFont( "Georgia", 28 ) ); } void draw(){ background( 0 ); if( state == 0 ){ blankPhase(); } else if( state == 1 ){ responsePhase(); } drawInfo(); } void blankPhase(){ int elapsedTime = millis() - baseTime; if( elapsedTime > 2000 ){ state = 1; baseTime = millis(); } } void responsePhase(){ fill( color(100, 255, 200) ); ellipse( width/2, height/2, height * 0.2, height * 0.2 ); } void drawInfo(){ fill( 255 ); text( "key: " + response, 30, 40 ); text( "RT: " + RT, 30, 80 ); String t = (state==0) ? "Elapsed: 0000" : "Elapsed: " + nf(millis() - baseTime, 4); text( t, 30, 120 ); } void keyPressed(){ if( state == 1 ){ response = int(keyCode); RT = millis() - baseTime; baseTime = millis(); state = 0; } }
解説
あとで書きます。
コメント