【内容】
ジャンプでしか移動できないキャラクター「ピョンピョン」を操作して、下に落ちないように右に進んで行くゲームです。IchigoJam のバージョン1.2以降用です。
【遊び方】
画面左上で動いているのがパワーメーターです。スペースキーを押して止めた時のパワーでジャンプします。パワー1につき横1キャラクター分移動します。右の方に進むと画面が左にスクロールします。画面左下の表示は持っているイチゴの数です。イチゴがあればジャンプ中にスペースキーを押して空中ジャンプできます。空中ジャンプはイチゴの数だけ何回でもできますが画面右端まで行くとそれ以上は進めません。画面下に落ちるとゲームオーバーで、Enterキーを押して再スタートです。
【プログラムについて】
プログラム0と1の2つがあります。0の方から実行して下さい。VIDEO3の拡大画面モードを使っているので途中でプログラムを止めた時は、F8キーを押してVIDEO1の画面に戻して下さい。
<プログラム0>
20-100行目 初期設定、画面作成
900-920行目 ゲームオーバー
<プログラム1>
200-230行目 キー入力待ち
300-350行目 ジャンプ処理
400-500行目 スクロール処理
600行目 イチゴ個数表示サブルーチン
<変数>
A ピョンピョンのキャラクター番号(224:立ち1、225:立ち2、226:ジャンプ)
B スペースキー状態(0:離してない、1:離した、2:押した)
C パワー用カウンター
D アニメ用カウンター(0,1)
H 穴の数(地面8キャラ分に対して)
I FORループ用
K ジャンプ加速度
L レベル
M レベルアップ用カウンター
P パワー
R 乱数
S 距離
W パワーメーターの速さ調整用のWAIT
X ピョンピョンx座標
Y ピョンピョンy座標
Z イチゴ個数(空中ジャンプ可能回数)
[0]-[15] 地面データ(画面内)
[16]-[23] 地面データ(作成データ用)
[24]-[31] 地面データ(作成コピー用)
[32]-[47] イチゴデータ(画面内)
[48]-[55] イチゴデータ(作成データ用)
[56]-[63] イチゴデータ(作成コピー用)
[64]-[66] パワーメーターデータ
10 'Pyon_0 20 CLS:CLV:VIDEO3:A=224:L=1:H=1:W=10:Y=8:Z=3:[64]=1 30 POKE#700,#00,#00,#24,#7E,#ED,#FF,#E0,#7E 40 POKE#708,#00,#24,#7E,#ED,#FF,#E0,#E0,#7E 50 POKE#710,#24,#7E,#ED,#FF,#E0,#E0,#E0,#7E 60 FORI=0TO15:POKE#990+I,4:POKE#9A0+I,4:[I]=4:NEXT 70 COPY#820,#800,32:R=RND(7):POKE#998+R,0:POKE#9A8+R,0:[8+R]=0 80 FORI=0TO2:R=RND(14):IF [2+R]>0 POKE#982+R,255:[34+R]=1 90 NEXT 100 LCX,Y:?CHR$(224);:LC0,-1:LRUN1,500 900 WAIT8:FORI=0TO3:POKE#980+I*16+X,0:POKE#990+I*16+X,224:WAIT4:NEXT 910 BEEP20,20:LC3,5:?"GAME OVER" 920 IF INKEY()=10 RUN ELSE CONT SAVE0 NEW 150 'Pyon_1 200 LC10,0:?S;"m":LCX,Y:?CHR$(A+D); 210 P=C+1:LC0,0:?P:COPY#900+P,#880,5 220 WAIT W:IF BTN(32)=0 B=1 ELSE IF B=1 B=2:K=-80*P-20:A=226 230 C=(C+1)%5:D=D^1:IF B<2 GOTO200 ELSE BEEP3,8 300 LC X,Y:?" ";:Y=Y+K/100:K=K+200:IF Y>=8 Y=8:K=0:A=224 ELSE IF X<15 X=X+1:S=S+1 310 LC X,Y:?CHR$(A);:WAIT10:IF Z>0 IF BTN(32)=0 B=1 ELSE IF B=1 B=2:K=-100:Z=Z-1:BEEP3,8:GSB600 320 IF Y<8 GOTO300 330 IF [X]=0 LC0,-1:LRUN0,900 340 IF [32+X]>0 LC X,Y-1:?CHR$(255);:BEEP6,5:WAIT10:LC X,Y-1:?" ";:Z=Z+1:GSB600 350 C=0:B=0:IF X<8 GOTO200 400 COPY#900,#870,16:FORI=1TOH:[16+RND(7)]=0:NEXT 410 FORI=0TO7:SCROLL3:X=X-1:POKE#99F,[16+I]:POKE#9AF,[16+I] 420 IF([16+I]>0)&(RND(8)=0) POKE#98F,255:[48+I]=12 430 WAIT6:NEXT:COPY#800,#810,48:COPY#840,#850,48 440 GSB600:M=M^1:IF M<>0 GOTO200 450 L=L+1:IF L<4 H=H+1 ELSE IF W>0 W=W-1 500 LC6,5:?"Lv";L;:BEEP1,10:WAIT20:COPY#950,#870,16:GSB600:GOTO200 600 COPY#9B0,#870,16:LC0,23:?CHR$(255);Z;:RETURN SAVE1
うーわ、おもしろい! シンプルなゲーム性ながら、狙った距離にジャンプするのは簡単じゃないですね。空中ジャンプを使うかどうかの判断も大切。キャラクタの動きもかわいらしくて、画面を見ているだけで楽しくなってきます。