create every day - 福野泰介の一日一創

シューティングゲームをつくろう - IchigoJamでつくろう、プログラミング入門2

2014/04/07 23:55:00
#KidsIT #IchigoJam 

セットアップから光らせるまでの前回に続き、今回はテレビゲーム、シューティングゲームを作るプログラミング講座、第二回目です。まずは自機をあやつるところまでを解説してみます。

IchigoJamでつくろう、プログラミング入門 2

- 画面の好きな位置に表示する LOCATE

LOCATE 0,0:PRINT"A"
と書いてみてください。画面の左上すみっこに A が表示されます。
LOCATE 1,0:PRINT"A"
ひとつ右にも表示されます。
LOCATE 1,1:PRINT"A"
そのままひとつ下に表示されます。
LOCATE 5,10:PRINT"A"
思い通りの場所に表示されましたか?
最初の数が横の位置、次の数が縦の位置で、次はそこから表示してねという命令がLOCATE(ロケート)です。

- 画面をきれいにする CLS
画面にいろいろ描いてぐちゃぐちゃになった時便利なのがCLS(クリアスクリーン)

CLS
画面は消してもプログラムは消えません。

- プログラムを表示する LIST
プログラムを見るときは、LIST(リスト)を使います。

LIST
キーボードでカーソルを移動してプログラムを上書きして、エンターキーを押すと変更することもできます。

- プログラムのいらない行を消す
いらない行を消したいときは、数字だけ書いてエンターキーで消えます。

10
例えばこれで10行目のプログラムが消えます。LISTで確認してみましょう。

- プログラムを全部消す NEW
全部まとめて消したいときは、NEW(ニュー)。

NEW

- キー入力 INKEY()
シューティングゲームを作るには、キー(キーボードのについているボタン)の操作をプログラムへの伝えないといけません。次のプログラムを書いてみましょう。書き始める前は、NEW!

10 K=INKEY()
20 PRINT K
30 WAIT 30
40 GOTO 10
プログラムを書いたらRUN(ラン)で動かして、いろいろキーを押してみてください。表示される数値が、キーに対応しています。左を押すと28、右を押すと29が表示されますね?何も押されていなければ 0 になります。ESCキーで止まります。

- 左右に動かしてみよう
いよいよ動かしてみます。左キーは28、右キーは28でした。

10 CLS:A=15
20 K=INKEY()
30 A=A-(K=28)+(K=29)
40 LOCATE A,25:PRINT" A "
50 GOTO 20
うまくいけば、キーボードの左右で A が動くはずです。もし、動かなければ LIST を見て打ち間違いがないか確認してみましょう。20行目が難しいところですが、キーが左ならAを1減らし、右なら1増やすというプログラムです。またあとでちゃんと解説するので、いまは理解できなくてOKです。

- 弾を打たせよう
ちょっと難しくなりますが、ひとまずこのまま追加してみましょう。

10 CLS:A=15:B=-1
20 K=INKEY()
30 A=A-(K=28)+(K=29)
40 LOCATE A,25:PRINT" A "
50 IF(B=-1)*(K=32) B=24:C=A+1
60 IF B<24 LOCATE C,B+1:PRINT" "
70 IF B=-1 GOTO 20
80 LOCATE C,B:PRINT"!"
90 B=B-1:GOTO 20
これで左右に動いて、スペースキーで弾が打てるようになりました。
うまく動かない時は、LISTでよく見なおしてみてください。
うまく動いたら SAVE(セーブ) で保存しておけば、いつでもLOAD(ロード)で、元通りです。

- 改造しよう
まずは自機のキャラクターを自分の好きな文字に変更してみましょう。弾も変更してみるのもいいですね。ほかもいろいろといじってみてください。ぐちゃぐちゃになってわからなくなったら、LOAD(ロード)で元通り。いい感じに出来たら SAVE(セーブ) しておけば、電源を切っても消えないので、友達に自慢しちゃおう!

➔ 質問・リクエストはFacebook公開グループでどうぞ! "IchigoJam-FAN"


第一弾から比べてもっとコンパクトになりました。(右は Raspberry Pi)

こどもに安心して渡せる安価なプログラミング専用コンピューター「IchigoJam」
人類史上最高の道具「コンピューター」を使いこなすためのテクニック「プログラミング」をすべての人に!気軽に始められる環境づくりに挑戦しています。

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image