/* 精密タイマールーチン */ /* このルーチンはWAVファイルを用いてペルソナウェアのMinute()関数と比べて 精度の高い時間計測を行うルーチンです。正直な話、WAVファイルで なくとも構わないのですが、MIDファイルであかねのクイズタイマーを 作ったところ、MIDIファイルを演奏できない古い環境を持つ方からエラーが 発生してしまうという苦情をいただいたので、もっとも汎用性の高い WAVファイルを選んだというわけです。ただ、自作機などを使用している方の 中にはサウンドカードを積んでいない場合も十分に予測されるので、精度が 下がってもMinute()関数を使用したタイマーも併用したほうがトラブルを 防止できます。しかし、このルーチンはあくまで基本を追求したものですので、 そのような改造はご自分で行ってください。 なお、WAVファイルはご自分で用意してください。長さや内容は自由ですが、 再生が終わってしまうと当然、正常に時間の計測ができなくなります。 再生が終わった後に計測を続ける改造などもご自分で行ってください。 */ action Micro_Timer@( 0 ) { /* 変数宣言 */ int T_Mode = MediaOpen( "Count.wav" ); //メディアオープン int Clock; //経過時間 計算用 int Clock_Major; //経過時間 整数値 int Clock_Minor; //経過時間 小数値 if( T_Mode != 0 ) { //何らかの理由でタイマーが使えない Talk( "精密タイマーが使用できません。" ); } else { Talk( "計測を開始します。クリック待ちマークが出てから"+ "マウスクリックすると表示されてからの時間を表示します" ); MediaPlay( ".wav" ); Talk( "\c" ); Clock = ( MediaGetPosition( ".wav" ) ) / 1000; MediaStop( ".wav" ); Clock_Major = Clock / 1000; Clock_Minor = Clock % 1000; Talk( "\e計測結果は" + itoa( Clock_Major ) + "秒"+ itoa( Clock_Minor ) + "でした。" ); } }