"川下り"を作ろう
定番のゲームを作ってプログラミングを学ぶ
IchigoJamBASICでゲームを作ってみよう。
画面の下から * が上がってきます。
画面の上の方にある V を←キー →キーで左右に動かして、
*を避けます。
*にぶつかると何秒か表示して終わります。
NEW
まず入っているプログラムを消しましょう。
LIST
消えていますね。
10 'KAWAKUDARI
ゲームの名前を入力します。
LIST
で確認できます。
SAVE0
で保存します。
FILES
プログラムの1行目が表示されて、保存されていることが確かめられます。
NEW
一度消してみましょう。
LIST
消えてますね。
LOAD 0
LIST
読み込むことができました。
0 1 2 3 の4つのプログラムを保存できます。
電源を切っても保存したプログラムは残っています。
プログラムを入力したら途中で保存しておくとやり直しができます。
RUN
でプログラムが動くので確認しながら入力していきましょう。
KAWAKUDARI は説明なので、なにも表示されません。
CLS または F1キー で画面をクリアできます。
RUN または F5キー でプログラムが動きます。確認しながら入力していきましょう。
100 PRINT "*"
* が表示されました。PRINTは" "の中の文字を表示します。
90 LOCATE 16,23
画面の横16文字縦23行を指定します。
50 @LP
120 GOTO@LP
120行から50行の@LP ラベルに行きます。PRINT "*"を繰り返すプログラムになりました。
止めるにはESCキーを押します。
一番下の行に表示すると次の行を表示する改行をするので、画面全体が1行上に上がるスクロールをしています。
110 WAIT 5
速くてよく見えないので 5/60秒待ちます。
90 LOCATE RND(32),23
RND(32) 0〜31の数を返します。
80 LC16,5:?"V"
V を表示します。
LOCATEはLC PRINTは? と省略して書くことができます。
スペースは省略できます。
: を入れて1行にまとめました。
90 LCRND(32),23:?"*"
100
行番号だけ入力して PRINT "*" を消します。
40 X=16
60 X=X-BTN(28)+BTN(29)
80 LCX,5:?"V"
変数XにVの場所を入れます。最初は画面の真ん中です。
BTN(28)は←キーが押されていると1を返します。
BTN(29)は→キーが押されていると1を返します。
←を押しているとX−1 →を押しているとX+1になります。
LCX,5でVを表示する場所を指定しています。
70 IF SCR(X,5)=42 THEN GOTO @ED
SCR(X,5)はVを表示する場所にある文字を返します
。
42は * の文字コードです。
もし * にあたったら @ED に行きます。
70 IFSCR(X,5)=42GOTO@ED
THENやスペースは省略できます。
プログラムは読みにくくなりますが小さくすることができます。
Line error in 70
GOTO@EDの行き先がありません。
130 @ED
140 ?TICK()/60
150 END
TICK()は時間を返します。1/60秒単位なので60で割って秒数にしています。
いきなり衝突してしまいました。
20 CLS
画面をClearScreenで消します。
30 CLT
最初にClear Timeで0秒にリセットします。
SAVE0
で保存しておきましょう。
おまけ 一行プログラムにまとめる
10 CLS:CLT:X=16:FORI=0TO1:X=X-BTN(28)+BTN(29):IFSCR(X,5)?TICK()/60:END:ELSELCX,5:?"V":LCRND(32),23:?"*":WAIT 5:I=0:NEXT
プログラムに"バグ"があります。
←→を押し続けていると……X=0 X=32で止まるようにしよう。
時々*の流れが速くなる。横31縦23に"*"を表示すると、2回改行してしまいます。
改造してみよう。
ALTを押しながら C V 押すと……キャラクタを変えてみよう。
苺を避けるんじゃなくて、取ったら点数が出るといいな。
ヒント 苺のコードは255 取ったらS=S+1 猫のとなりに?S
ALTを押しながら D G 押すと……キャラクタを変えてみよう。
上から下にスクロールに改造しよう。
ヒント SCROLL 0 1 2 3 で画面をスクロールすることができます。
ALTを押しながら Jを押すと……キャラクタを変えてみよう。
横スクロールゲームに改造しよう。
ヒント BTN(30) BTN(31) は↑↓キー
武器は武器はないのか!
ヒント BTN(32)はスペースキー
タブを閉じる