昨日は、会社を出なければいけない時間が迫っていたために焦ってアップしたのですが、読み返してみると、説明出来ていない箇所がありましたので、今回は、それについて補足説明させていただきます。

 

CHR$()に関しては、問題無いと思いますが、キャラクター一覧を手にしたら、どんどんと数字を変えて、キャラクターを表示させてみましょう。

一回一回入力するのが面倒であれば、

 

10 INPUT A

20 ?CHR$(A)

30 GOTO 10

 

を実行して255までの数字を入力してみましょう。

 

さて、補足しなければいけないのは、3つ目のプログラムに登場した

25 K=INKEY()

26 IF K=28 THEN X=X-1

27 IF K=29 THEN X=X+1

の部分です。

25行目は、もうお判りだと思いますが、Kに入力されたキーの数値を入れます。

 

そして、行番号26と27では、その数値が「28」か「29」なら…

という判定を行っています。

 

この部分の説明が抜けていました。

キーボードには、アルファベットと10キーの他にカーソルキーが付いていますが、その中のカーソルキーを押した時に帰ってくる数値になるのです。

 

28=左

29=右

30=上

31=下

32=スペース

 

となります。

この数値は、変わらないので、覚えてしまいましょう。

 

そしてプログラムですが、

行26は、入力されたのが28(左)なら、Xを-1してLCX,Yに表示する

行27は、同じく29(右)なら、X+1してLCX,Yに表示する

 

です。

まぁ、そこまで難しく無いので、すぐに覚えられるはずです。

 

この後は、インンベーダーの様に、スペースキーが押されたら、キャラの上(y-1)から順番いy-1ずつ減らしながら表示させるとかすれば、弾を撃っている様にみえるはずです。

 

まずは、

 

10 X=16:Y=12

20 CLS

25 K=INKEY()

26 IF K=28 THEN X=X-1

27 IF K=29 THEN X=X+1

30 LCX,Y:?CHR$(236)

35 WAIT 5

40 LCX,Y:?CHR$(237)

50 WAIT 15:GOTO 20

 

に、追加して、横だけではなく、上下にも動くプログラムを書いてみてください。