プログラマにしろ、トンカツ屋にしろ、ソースの中身は教えたくないものである。
サンプルをひとつ。
ポイントは、キーをトリガーとして取得していることと、ポーズ中であるかないかをトグルとして保持していること。
スペースキーで、止まったり再開したりします。
flg=-1 ;フラグ・・というかトグルスイッチ。-1で通常 1でポーズ中
;初期状態を-1、あるいは1にしておくことがポイント
dim k,2 ;キー情報を格納しておく為の配列。k(0)=現在のキー情報 k(1)=前回のキー情報
repeat
await 20
gosub *PauseCheck
if flg=1:continue ;とりあえず、ポーズ状態ならループの先頭へもどることにした
;ここから下に、ポーズ中に止まってほしい処理を書く
gosub *SubRoutine
loop
*PauseCheck
;スペースキーの状態を調べ、押されるたびに、フラグを反転する
getkey k(0),32
;現在のキー情報が「押されている」であり、前回のキー情報と違っていたら、フラグを反転
;押した瞬間の状態をトリガーとして取得したいので、こんな処理になっている
if (k(0)=1)and(k(0)!k(1)){
flg*=-1 ;flgに-1を掛ける。掛けるたびに、1か-1になる。 -1*-1=1 1*-1=-1
}
k(1)=k(0) ;前回のキー情報を更新
return
*SubRoutine
;適当に円を描く
color rnd(255),rnd(255),rnd(255)
x=rnd(640):y=rnd(480)
circle x-20,y-20,x+20,y+20
return
お味はいかが?