何かキーを押して始めます。
ゲーム中は何かキーを押してジャンプします。
Tはジャンプして、_はジャンプしないで通ってください。
Pを通るとスピードアップします。
ある程度続くとゲームクリアです。
ゲームクリア/ゲームオーバーの画面になったら何かキーを押してホームに戻ります。
エスケープキーで終了です。
スコアとタイムは意味ないです。
タイトルはスーパーマリオのパクリです(内容は全然ちがう)。
結構初期段階に作ったので無駄な部分もあり(えっSCRROLなんてあったの?)、1024byte中996byteと改造の余地はほぼないのですが、結構楽しめます。
変数表(アルファベット順)
A,B:スクロール用の変数
E:障害物のY座標
I:FORループのカウンター
O:プレイヤーの1コマ前のY座標
S:スコア
W:待つ秒数
X,Y:プレイヤーのX座標とY座標
行番号対応表
1:注訳
5~6:タイトル
10~20:初期化
30:キャラの表示
40~45:ジャンプ処理
50:WAIT
55~95:スクロール処理
100~110,130~150:当たり判定
120:スコア、タイムの表示
160:クリアしたかの判定
170:GOTOループ
200:再ゲーム
999:ゲームオーバー
1000:クリア
CLS NEW 1 REM SUPER MARI0 5 CLS:PRINT " IchigoJam GAME SUPER MARI0" 6 IF NOT INKEY() THEN GOTO 6 10 X=20:Y=10:E=11:S=0:W=12 20 CLS:CLT 30 LOCATE X,Y:PRINT CHR$(#FB):LOCATE 1,E:PRINT " _T _TT _T_T __TTP _ T _T _" 40 O=Y:IF INKEY() THEN Y=8:BEEP:LED 1 ELSE Y=10:LED 0 45 LOCATE X,O:PRINT " ":LOCATE X,Y:PRINT CHR$(#FB) 50 WAIT W 55 A=SCR(1,E) 60 FOR I=31 TO 2 STEP -1 70 B=A:A=SCR(I,E) 80 LOCATE I,E:PRINT CHR$(B) 90 NEXT 95 LOCATE 31,E:PRINT CHR$(A) 100 IF Y=10 AND SCR(X,E)=ASC("T") THEN GOTO 999 110 IF Y=8 AND SCR(X,E)=ASC("T") THEN S=S+1 120 LOCATE 1,1:PRINT "SCORE:";S;"pt TIME:";TICK()/60;"sec" 130 IF Y=10 AND SCR(X,E)=ASC("_") THEN S=S+1 140 IF Y=8 AND SCR(X,E)=ASC("_") THEN GOTO 999 150 IF SCR(X,E)=ASC("P") THEN W=W-2 160 IF W=2 THEN GOTO 1000 170 GOTO 40 200 IF INKEY() GOTO 5 ELSE GOTO 200 999 CLS:PRINT "GAME OVER SCORE:";S;"pt TIME:";TICK()/60;"sec":LED 1:BEEP:WAIT 15:LED 0:GOTO 200 1000 CLS:PRINT "GAME CLEAR SCORE:";S;"pt TIME:";TICK()/60;"sec":LED 1:BEEP:WAIT 15:LED 0:GOTO 200 PRINT "ダウンロード ガ カンリョウシマシタ。" PRINT "RUN デ ジッコウ デキマス。" RUN
オ、ではなく、ゼロ! なかなか難しい横スクロールアクションですね。スピードがあがるほど、難易度も楽しさもあがっていきます。ジャンプしなくちゃいけないところとジャンプしてはいけないところがどんどんやってくるヒヤヒヤ感がステキです。SCROLLなしで作ったのは、むしろすごい!