タイピングソフトと、迷路RPGをミックスしてみました。 キーをタイピングすることにより、迷路の中を進みます。 なんだか、文字だけのグラフィック世界にはまっていきそうです。 '======================================================== 'タイピングRPG
*母艦の設定 母艦の、サイズは、(0,0,400,400) 母艦を、中央へ移動。 母艦の、タイトルは、『タイピングRPG - 準備中です』
*変数の初期化
文字絵#0 = 『 』'通路 文字絵色#0 = 白色 文字絵#1 = 『■』'壁 文字絵色#1 = 茶色 文字絵#2 = 『金』'お金 文字絵色#2 = オレンジ色 文字絵#3 = 『爆』'爆弾 文字絵色#3 = 黒色
マップ=『1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,3,1,0,0,0,0,0,3,1 1,0,0,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,0,0,1,1,1,1,0,0,0,1 1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,1,0,0,0,3,2,1,2,0,0,1 1,1,1,3,0,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,3,3,0,3,1 1,0,0,1,0,1,0,3,0,0,0,0,0,2,0,0,1,1,1,1,0,1,1,1,1,1,0,1,1 1,3,0,1,0,1,2,3,0,0,0,0,0,0,0,0,1,0,2,1,0,0,0,0,0,0,0,0,1 1,0,0,3,1,1,1,1,1,1,0,0,0,0,0,0,1,0,3,1,0,0,0,0,0,0,0,0,1 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,1,0,0,0,0,0,0,0,0,1 1,0,0,0,0,0,1,0,3,0,1,1,1,1,1,1,1,0,3,1,0,0,0,0,0,0,0,0,1 1,0,0,0,0,0,1,0,0,0,1,0,0,2,0,0,0,0,2,1,1,1,1,0,1,1,1,1,1 1,1,1,1,0,1,1,1,1,0,1,3,3,0,0,0,3,3,0,1,0,0,0,0,0,0,0,2,1 1,0,0,1,0,2,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1 1,3,0,0,0,0,0,0,1,0,0,0,0,3,0,0,0,0,0,1,0,0,0,2,0,0,0,0,1 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1』
キーマップ#0=「ABCDEFG」 キーマップ#1=「HIJKLMN」 キーマップ#2=「OPQRSTU」 キーマップ#3=「VWXYZ38」
PX = 1 PY = 1 金貨の数=0 集めた金貨=0
*元イメージの作成 '迷路の描画 ペン色は、灰色。 塗り色は、白色。
文字サイズは、20 CH_W = 30 ; CH_H = 30 表示範囲は、4
元イメージを、イメージとして、作成。 mx = 31 * CH_W my = 31 * CH_H その、サイズは、(0,0,mx,my); '画面初期化 元イメージの、(0,0)から、(mx,my)へ、四角形描画。
YYを、0から、14まで、繰り返す( XXを、0から、29まで、繰り返す( MXX = CH_H * XX MYY = CH_H * YY C = マップ#XX#YY もし、C=「」ならば、C=1 もし、C=2ならば、金貨の数=金貨の数+1 文字色は、文字絵色#C CH = 文字絵#C 元イメージの、(MXX,MYY)へ、CHと、文字描画。 ) 描画処理反映。 ) その、可視は、オフ。
'主人公の描画 キャライメージを、イメージとして、作成。 その、サイズは、(0,0,CH_W, CH_H) 文字色は、青色。 キャライメージの、(0,0)へ、「♀」を、文字描画。
母艦の、タイトルは、『タイピングRPG - 開始』 「ゲームの準備が出来ました。 このゲームの目的は、爆弾をよけつつ、 迷路に散らばる金貨を全て集めることです。 動きたい方向に書かれたキーを押すと、その方向に進みます。 それでは、はじめます。」と、言う。 マップの表示。
'動作キーの決定 文字サイズは、20 U=0 UD=50+表示範囲*CH_H D =50+表示範囲*CH_H*2 L=0 LR=50+表示範囲*CH_W R=50+表示範囲*CH_W*2 (LR,U)へ、移動。上ラベルを、ラベルとして、作成。 (L,UD)へ、移動。左ラベルを、ラベルとして、作成。 (LR,D)へ、移動。下ラベルを、ラベルとして、作成。 (R,UD)へ、移動。右ラベルを、ラベルとして、作成。 キーランダム。 待機。
*マップの表示 mx = CH_W * (PX - 表示範囲) my = CH_H * (PY - 表示範囲) mw = CH_W * 表示範囲 * 2 mh = CH_H * 表示範囲 * 2 (50,50)から、(50+mw,50+mh)へ、四角形。 元イメージの、(mx,my,mx+mw, my+mh)を、母艦の、(50,50,50+mw,50+mh)へ、 イメージ部分コピー。 '母艦の、タイトルは、"{mx},{my},{mw+mx},{mh+mh}" 母艦の、キー押した時を、キーイベントに、設定。 キャライメージの、Xは、50+表示範囲*CH_W その、Yは、50+表示範囲*CH_H 戻る。
*キーイベント '母艦の、タイトルは、「{押されたキー} = {左コード}」 母艦の、キー押した時は、「」 前のX = PX;前のY = PY; もし、押されたキーが、左コードなら、PX = PX - 1。 もし、押されたキーが、右コードなら、PX = PX + 1。 もし、押されたキーが、上コードなら、PY = PY - 1。 もし、押されたキーが、下コードなら、PY = PY + 1。 {マップのイベント取得} もし、(PX >= 0)かつ(PY >= 0)ならば、C = マップ#PX#PY。 違えば、C = 0。 もし、(C = 1)なら( PX = 前のX;PY = 前のY; ランタイムのパス&『tools\pi.wav』を、演奏。 )違えば( ランタイムのパス&『tools\pu.wav』を、演奏。 マップイベント )。 母艦の、タイトルは、「タイピングRPG - 金貨残り {金貨の数-集めいた金貨}個」 キーランダム マップの表示へ、飛ぶ。 待機。
*マップイベント もし、C=0ならば、戻る もし、C=2ならば、( x1 = PX * CH_W y1 = PY * CH_H x2 = x1 + CH_W y2 = y1 + CH_H 元イメージの、(x1,y1)から、(x2,y2)へ、四角形描画。 マップ#PX#PY = 0 ランタイムのパス&『tools\ki.wav』を、演奏。 集めた金貨に、1を、足す。 もし、集めた金貨=金貨の数ならば、( 「全ての金貨を集めました!」と、言う。 「おめでとうございます!!」と、言う。 おわり。 )。 )。 もし、C=3ならば、( 「爆発!\nあなたは、死にました。\nゲームオーバー」と、言う。 おわり。 )。 戻る。
*キーランダム L = 文字数(キーマップ#0)
R=乱数(L)+1 キーマップ#0の中で、Rから、1つ、切り出す。 上キーは、それ。 キーマップ#1の中で、Rから、1つ、切り出す。 右キーは、それ。 キーマップ#2の中で、Rから、1つ、切り出す。 左キーは、それ。 キーマップ#3の中で、Rから、1つ、切り出す。 下キーは、それ。 上コードは、ASC(上キー) 右コードは、ASC(右キー) 左コードは、ASC(左キー) 下コードは、ASC(下キー)
上ラベルは、上キー 下ラベルは、下キー 右ラベルは、右キー 左ラベルは、左キー
キーマップ=キーマップ&キーマップ#0 キーマップの、0行目を、行削除。 キーマップは、それ。 戻る。
|