SHIROのIchigoJam日記

マイコン「IchigoJam」(イチゴジャム)の電子工作とプログラミングをメインに

地底探検

こちらも「かわくだり魔改造グランプリ」応募作品。画面が上下スクロールする「地底探検ゲーム」です。
f:id:shiro0922:20190520084358p:plain

遊び方

  • 自分のキャラを上下左右のカーソルキーで動かして地下へ潜り、5つのコイン「$」を集めてください。
  • 敵(エイリアン)に捕まった場合や、制限時間の60秒が過ぎても地上へ戻れなかった場合は、ゲームオーバーです。

ここまで来るとかわくだりゲームとは全くの別物ですが、「IchigoJamでこんなことができるんだ」と参考になれば幸いです。

プログラム

1 '*Titei Tanken
2 CLV:VIDEO1:CLS:VIDEO3:X=0:Y=5:L=60
3 FORB=#A20TO#A2F:POKEB,1:NEXT
4 R=#A11+RND(15):POKER,36
5 FORE=1TO4:A=#A20+E*#60
6 FORB=0TO15:POKEA+B,1:NEXT
7 R=A+4+RND(9):FORB=1TO6:POKER-B*16,72:NEXT
8 R=A-14+RND(13):IFPEEK(R)CONTELSEPOKER,36
9 [E]=E%2*15:POKEA-16+[E],237
10 NEXT
11 GSB27:LC0,0:?S:LCX,Y:?CHR$(250):CLT
12 FORE=1TO4
13 D=BTN(31)*(SCR(X,Y+1)=72)-BTN(30)*(H=72)
14 U=X-BTN(28)*(X>0)+BTN(29)*(X<15):I=SCR(U,Y+1):IFD||((I!=1)&&(I!=72))U=X
15 X=U:IFDO=O+D
16 GSB27:IFH=36GSB29
17 IFH=237M=1:E=4:GOTO22
18 A=#A10+E*96:B=A+[E]:POKEB,[E+5]
19 [E]=[E]+1-(E%2)*2:[E]=[E]&15
20 B=A+[E]:[E+5]=PEEK(B):POKEB,237:GSB27
21 IF[E]=X&&O+Y=5+E*6M=1:E=4
22 WAIT2:NEXT:IFT<=0||MG=3
23 IFP=5&&O=0G=1
24 IF!GGOTO12
25 LC3,4:?"GAME ";:IFG=1?"CLEAR"ELSE?"OVER":LCX,Y:?"X"
26 BEEPG*10,30:WAIT30:CLK:END
27 W=#9C0+O*16:COPY#900,W,192:H=SCR(X,Y):LCX,Y:?CHR$(250)
28 LC0,0:?"$";P:T=L-TICK()/60:LC14,0:?DEC$(T,2):RTN
29 P=P+1:BEEP:POKE#A10+O*16+X,0:RTN

Web版はこちら。
Web版は画面表示が遅いので、WAITを減らしています。

プログラムでは、画面をVIDEO 3モード(16文字×12行)に設定。使われていないVRAMを仮想画面にして、背景・敵・コインなどをそちらに描画。自キャラの動きに合わせて実画面へCOPYで転送しています。
他のゲームでも使えるテクニックだと思います。
f:id:shiro0922:20190520084610p:plain