垂直同期を取らない限り画像表示命令から
実際にモニター画面に表示されるまで最大16ms程度(リフレッシュレート60Hzの場合)の遅延がある
さらにOSや設定、ディスプレイによって50msぐらい遅延することもありえる
後、timeGettimeの精度は環境により違うので自分で設定する必要がある
ミリ秒の差で評価が変る物を本気で作るなら
これらの事を考慮する必要がある
これらの事は、100ms程度の差で評価の違いを出すとか
画像AよりBの方が遅いとかの相対的な評価なら
それ程気にしなくて良いかも知れない
>指定されたキーが押されるまでの時間計測方法は理解できたのですが
逆に、これが理解できるのに
>*hata1などに移動する際の時間計測方法がわからず困っています。
これが、分からないのが理解できない・・・
buttonは離されてからジャンプするので
ボタン画像を表示した範囲でクリックされたらジャンプにしてる
#uselib "winmm.dll"
#cfunc timeGetTime "timeGetTime"
celload dir_exe+"\\sample\\game\\mapbg.bmp",1
celdiv 1,64,64,32,32
color 100,100,100
boxf 0,0,50,40
color 200,200,200
boxf 1,1,49,19
boxf 1,21,49,39
color
pos 7,2
mes "開始"
mes "次へ"
repeat
await 1
stick stk
if (stk&256)>0 {
if mousex<50 {
if mousey<40 {
if mousey<20 {gosub *start}else{gosub *cel_next}
}
}
}
loop
stop
*start
celid=0
title "スタート"
gosub *draw
return
*cel_next
timB=timeGetTime()
title ""+(timB-timA)+"ms"
celid=(celid+1)\8
gosub *draw
return
*draw
redraw 0
pos 320,240
celput 1,celid,6,6
redraw 1//ここで画面更新を実行してるがモニターに表示されるのは何時か分からない
timA=timeGetTime()
return