樹木にぶつからないようにプレイヤーを操作して滑降していくゲーム
準備するもの
準備するもの
名前 | 個数 |
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キーを押してください
② プレイヤーを矢印キーで動かして、樹木に当たらないように操作します
③ 樹木にぶつかったらゲームオーバーです。(スコアも表示されます)