準備するもの
名前 | 個数 |
IchigoJam T | 1個 |
ディスプレイ(4.3inch 自動車のバックモニター用 amazonで1,075円で購入しました) | 1台 |
ディスプレイ用ACアダプター12V | 1個 |
ビデオケーブル | 1個 |
microUSBケーブル 5V (Android用のものが利用可能) | 1個 |
USB電源アダプタ | 1個 |
PS/2対応キーボード | 1台 |
第5回 スキーゲームを作ってみよう
準備するもの
名前 | 個数 |
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=12:Y=9:S=0:T=10:W=100 //画面消去,プレイヤーの座標、ウェイト(待ち時間)を設定
20 POKE #700,#18,#2C,#5E,#FF,#FF,#FF,#18,#18 //樹木キャラクターをPCG定義
30 POKE #708,#42,#42,#42,#42,#42,#42,#42,#42 //スキー跡キャラクターをPCG定義
40 C=SCR(X,Y) //プレイヤーの位置にある画面上の文字を取得
50 LOCATE 0,0:PRINT "Score ";S; //スコアの表示
60 LOCATE X-1,Y:PRINT CHR$(32,5,32); //プレイヤーの表示
70 LOCATE X-1,Y-1:PRINT CHR$(32,#E1,32); //スキー跡の表示
80 K=INKEY():X=X-(K=28 AND X>0)+(K=29 AND X<28) //プレイヤーの移動
90 S=S+1 //スコアを増加
100 T=T+1 //カウンタを増加
110 IF T/10>3 THEN T=0 //ゲームの難易度を決めている
120 FOR I=0 TO T/10
130 LOCATE RND(30),24-RND(2):PRINT CHR$(#E0); //樹木をランダムな位置に表示
140 NEXT
150 SCROLL 0 //画面全体を上に1行スクロールさせる
160 WAIT W/10 //衝突判定
170 W=W-1:IF W<2 THEN W=1 //ウェイトの時間を減らしていく。ゲームの進行に従って速度が上がるようになってます
180 IF T%2>0 THEN POKE #700,#18,#2C,#5E,#BD,#BF: ELSE POKE #700,#18,#2C,#5E,#FF,#FF //樹木のキャラクターの上部を定義し直している
190 IF C<>#E0 THEN GOTO 40 //プレイヤーと樹木の当たり判定を行っている
200 LOCATE X,Y-1:PRINT CHR$(244) //ゲームオーバー時爆発の文字
210 LOCATE 11,9:PRINT "Score ";S;"pt" //スコア表示
220 LOCATE 11,11:PRINT "Game Over" //ゲームオーバーの文字出力
変数の意味
変数 | 意味 |
X | プレイヤーのX座標 |
Y | プレイヤーのY座標 |
S | スコア |
T | カウンタ |
W | ウェイト |
C | プレイヤーの位置にある文字コード |
K | 入力されたキーコード |
I | 繰り返し(ループ)用変数 |
③ 入力後、下図のようになっていればOKです
① RUNと入力してEnterキーを押してください
② プレイヤーを矢印キーで動かして、樹木に当たらないように操作します
③ 樹木にぶつかったらゲームオーバーです。(スコアも表示されます)