IchigoJamでキャラクタ移動をする場合、INKEY( )を利用すると思いますがキーバッファが入るので、ゲームのようにカーソルキーを押しっぱなしにするようなゲームではちょっと不便です。そこで、BTN( )を利用します。
BTN関数はボタンの状態を、押されていたら1、押されていなかったら0を返すものですが、引数には、次の5つが入れられるみたいです。
- SPACE
- スペースキーの状態
- LEFT
- 左カーソルの状態
- RIGHT
- 右カーソルの状態
- UP
- 上カーソルの状態
- DOWN
- 下カーソルの状態
そこで簡単なサンプルを以下に作ってみました。
10 CLS:X=10:Y=10:A=-1:B=-1 20 LOCATE X,Y:PRINT"@" 30 A=BTN(RIGHT)-BTN(LEFT) 40 B=BTN(DOWN)-BTN(UP) 50 IF BTN(SPACE)LOCATE X,Y:PRINT " ":X=RND(31):Y=RND(22) 60 WAIT 5 70 LOCATE X,Y:PRINT " " 80 X=X+A:Y=Y+B 90 GOTO 20
30〜40行で、X,Y座標に対する次の移動量を算出していますが、先ほどのBTN()から取得しています。あと50行でスペースキーの状態で押されたらランダムな場所に移動させます。