体験的マイコン学習(IchigoJam編)


目次



第4回 ドライブゲームを作ってみよう


道路の端にぶつからないように車を操作するゲーム


準備するもの

準備品

準備するもの

名前 個数
IchigoJam T 1個
ディスプレイ(4.3inch 自動車のバックモニター用 amazonで1,075円で購入しました) 1台
ディスプレイ用ACアダプター12V 1個
ビデオケーブル 1個
microUSBケーブル 5V (Android用のものが利用可能) 1個
USB電源アダプタ 1個
PS/2対応キーボード 1台
ページトップ

電源を入れるまで

第1回Lチカを試してみるに書いてますのでそちらを確認してください

ページトップ

ゲームの仕様

車を操作(矢印キー)してひたすら道路を走るゲーム

道路がランダムで左右にずれる

徐々に道幅が狭くなる

道路の端にぶつかるとゲームオーバー

ゲームオーバー時にスコアが表示される

ページトップ

プログラムの作成

① 電源スイッチを入れると、下図のような画面が表示されます

スタート画面

② 下記を入力してください (各行の//以降はコマンドの説明です入力しないでください)

10 CLS:CLP:X=16:Y=23:R=8:H=17:T=0:S=0 //画面消去、車の座標、道路のX座標と幅、スコアの初期値を設定

20 SCROLL 2 //画面全体を下スクロール

30 S=S+1 //スコアを増やす

40 C=SCR(X,Y) //車の座標に書かれた文字コードを呼び出す

50 LOCATE X,Y:PRINT "A"; //車(Aの文字)を表示

60 T=T+1:D=(T&7)>3 //道路の端に設置する文字を決めるため計算式

70 LOCATE R, 0:PRINT CHR$(2+D) //道路の端に文字を表示します

80 LOCATE R+H, 0:PRINT CHR$(2+D) //道路の端に文字を表示します

90 LOCATE R+H/2+1, 0:PRINT CHR$(2+D) //センターラインの表示、非表示の切り替え

100 K=INKEY():X=X-(K=28 AND X>0)+(K=29 AND X<28) //キーの入力に応じて車を移動

110 IF T%64=0 THEN H=H-1:IF H<3 THEN H=3 //スクロール64回に1回道路の幅を狭くする条件式

120 IF T%16<>0 THEN GOTO 160 //スクロール16回に1回道幅をずらす条件式

130 R=R+RND(3)-1 //道路をずらす

140 IF R<3 THEN R=3 //道路の端のX座標の条件式

150 IF R+H>26 THEN R=26-H //道路の端のX座標の条件式

160 IF C=0 OR C=124 THEN GOTO 20 //衝突判定

170 LOCATE X,Y:PRINT CHR$(244) //ゲームオーバー時爆発の文字

180 LOCATE 4,13:PRINT "Game Over. Score = ";S //ゲームオーバー時 Game Over、スコアの表示

変数の意味

変数 意味
X 車のX座標
Y 車のY座標
R 道路のX座標
H 道路の幅
T カウンタ。進んだ距離
S スコア
D 一時的な計算用に使用
C 読みだした画面の文字
K 入力されたキーコード

③ 入力後、下図のようになっていればOKです

プログラムの作成
ページトップ

実行する

① RUNと入力してEnterキーを押してください

実行サンプル1

② 車を矢印キーで動かして、道路端にあたらないようにします

実行サンプル2

③ 道路の端にぶつかったら終了です。(当たらないかぎり続きます)

実行サンプル3
ページトップ