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


目次



第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キーを押してください

実行サンプル1

② プレイヤーを矢印キーで動かして、樹木に当たらないように操作します

実行サンプル2

③ 樹木にぶつかったらゲームオーバーです。(スコアも表示されます)

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