waitは、実行された時点でその指定された時間分だけ、プログラムが止まります
対してawait命令はそのプログラムでawaitが初めて実行された時にはwaitと同じで、
指定された時間分プログラムが止まります
が、2回目にawaitが実行された時、
awaitは、(前回awaitが実行された秒数+指定された時間)の時まで止まります
このことは以下のプログラムで分かり易いでしょう
#uselib "winmm"
#cfunc msec "timeGetTime"
randomize
st = msec() ;現在の時間を取得
wait 100 ;wait 100 で一秒止まる
en = msec() ;現在の時間を取得
mes "wait100は\t\t"+(en-st)+"\tmsでした" ;止まった時間を表示
st2 = msec()
await 1000 ;await 1000 で一秒止まる
en2 = msec()
mes "await1000は\t\t"+(en-st)+"\tmsでした"
mes
wait 100
mes "ここまでは同じ動きです"
mes
wait 300
cls
mes "重い処理をしてみましょう"
wait 200
screen 1,256,256
st = msec()
repeat 5
repeat 4096
color rnd(256),rnd(256),rnd(256)
boxf rnd(256),rnd(256)
color rnd(256),rnd(256),rnd(256)
circle rnd(256),rnd(256)
color rnd(256),rnd(256),rnd(256)
line rnd(256),rnd(256)
loop
wait 100 ;1秒を5回止まります
loop
en = msec()
gsel 1,-1
gsel 0,1
mes "waitで重い処理にかかった時間は\t"+(en-st)+"\tmsでした"
mes "一秒を5回ループで5000msくらいのはずですが全く違います"
mes
wait 200
mes "awaitで同じ事をします"
mes
wait 200
screen 1,256,256
st = msec()
repeat 5
repeat 2048
color rnd(256),rnd(256),rnd(256)
boxf rnd(256),rnd(256)
color rnd(256),rnd(256),rnd(256)
circle rnd(256),rnd(256)
color rnd(256),rnd(256),rnd(256)
line rnd(256),rnd(256)
loop
await 1000 ;1秒を5回止まります
loop
en = msec()
gsel 1,-1
gsel 0,1
mes "awaitで重い処理にかかった時間は\t"+(en-st)+"\tmsでした"
mes
wait 200
mes "これでわかるでしょうか await は指定された時間分止まるのではなく、\n前回awaitが実行された時間から、awaitで指定された時間分止まるということです"
mes
wait 200
mes "また、awaitの時間がオーバーしてしまったときは、awaitは「await 0」として働きます\nプログラムが中断されるということはありません"
中身は読まなくていいのでそのまま実行してください