arcanum_jp’s blog

おっさんの日記

IchigoJamでのキャラクタ移動

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行でスペースキーの状態で押されたらランダムな場所に移動させます。