『コイン集め』はコインをひたすら集めるゲームです。
途中から出てくる『火』に触れるとゲームオーバー。
【操作】
←:プレイヤーが左に移動します。
→:プレイヤーが右に移動します。
スペースキー:プレイヤーがジャンプします。
←+スペースキー:プレイヤーが左にジャンプします。
→+スペースキー:プレイヤーが右にジャンプします。
【プログラム解説】
プログラムは3ファイル分を使います。
ファイル0: 10~330
ファイル1:400~440,900~999
ファイル2:500~860
主な内容
10~330:初期設定&オープニング
400~440:BGM
500~860:メインループ
500~510:コイン動作
520~570:ファイヤー動作
600~720:プレイヤー動作
800~860:当たり判定
900~999:ゲームオーバー
<変数>
F : 当たり判定値
G : 地上のY座標
I : ループ変数①
J : ループ変数②
K : キー入力
L : キー同時押し(#1002)
S : スコア
V : ジャンプ・カウント値
W : 斜めジャンプ用のX増減値
X : プレイヤーのX座標
Y : プレイヤーのY座標
Z : プレイヤーの向き
[0] : コインのX座標
[1] : コインのY座標
[2] : ファイヤー①のX座標
[3] : ファイヤー①のY座標
[4] : ファイヤー②のX座標
[5] : ファイヤー②のY座標
<SPRITE番号>
0~9 : 床
10,11 : スコア
12 : プレイヤー
13,14 : ファイヤー
15 : コイン
※下記のF=5がファイヤーとの当たり判定値です。
ゲームが難しい場合は値を小さくすると難易度が下がります。
800 FORI=0TO4STEP2:J=9:F=5:IFI=0F=6
【更新履歴】
20018/06/24 コイン&ファイヤーの表示と座標変更の順番を適正化
ジャンプ中にコインを取ると得点は2点に変更
1 'Initialize 10 VIDEO0:CLV:WAIT150:?"PC RESET" 20 G=32:V=4:X=-8:Y=G:LET[0],36,-8,80,G,-8,16 30 ?"PC SPRITE USER FD 08 888222188882222288776068887666768887666888225AB88821AAB888877E88" 40 ?"PC SPRITE USER FE 08 88822218888222228877606888766676822766681825AA418EAAAAB888888878" 50 ?CHR$(128,4,6,#10):WAIT60 100 ?"PC MUSIC SCORE 00 01 30 >B>E~~~":WAIT60 110 FORI=0TO9:FORJ=45TO40STEP-1 120 ?CHR$(128,6,8,I,I*8,J) 130 ?CHR$(128,5,7,I,#5D) 140 WAIT3:NEXT:NEXT 150 ?"PC MUSIC SCORE 00 00 30 <DDRDRDDR>BRRR<GRRR" 160 ?"PC MUSIC SCORE 01 00 30 F+F+RF+RF+F+RGRRRGRRR" 170 ?"PC MUSIC SCORE 02 00 30 >EERERCERGRRRRRRR" 180 WAIT20:?CHR$(128,4,12,1):WAIT5 190 FORI=1TO8:X=X+4 200 ?CHR$(128,6,8,12,X,Y) 210 ?CHR$(128,5,7,12,#FD+I%2):WAIT12:NEXT:CLK 220 ?CHR$(128,6,8,15,[0],[1]) 230 ?CHR$(128,5,7,15,53) 240 ?CHR$(128,6,8,13,[2],[3]) 250 ?CHR$(128,5,7,13,64) 260 ?CHR$(128,6,8,14,[4],[5]) 270 ?CHR$(128,5,7,14,64) 280 WAIT40 290 ?CHR$(128,6,8,11,72,0) 300 ?CHR$(128,5,7,11,166) 310 ?CHR$(128,6,8,10,64,0) 320 ?CHR$(128,5,7,10,166) 330 LRUN1 2 'sub 400 ?"PC MUSIC SCORE 00 00 50 $<C>C<<A>A<A+>A+RRR<C>C<<A>A<A+>A+RRR<F>F<D>D<D+>D+RRR<F>F<D>D<D+>D+RRR" 410 ?"PC MUSIC SCORE 01 00 50 $C>C<<A>A<A+>A+RRRC>C<<A>A<A+>A+RRR<F>F<D>D<D+>D+RRR<F>F<D>D<D+>D+RRR" 420 ?"PC MUSIC SCORE 02 00 30 R" 430 ?CHR$(128,4,12,1) 440 LRUN2 900 ?CHR$(128,4,12,0) 910 ?"PC MUSIC SCORE 00 00 30 <GRRGGAB>CR<GRCRRR" 920 ?"PC MUSIC SCORE 01 00 30 G>DRDDC<BGERECRRR" 930 ?"PC MUSIC SCORE 02 00 30 B>FRFFEDCRRRRRR" 940 ?CHR$(128,4,12,1) 950 FORI=1TO10 960 ?CHR$(128,6,8,12,X,Y-I):NEXT 970 WAIT20:?CHR$(128,5,16,12,!Z):WAIT20 980 FORI=Y-10TO45 990 ?CHR$(128,6,8,12,X,I):NEXT 999 WAIT200:LRUN0 3 'main 500 [1]=[1]+1:IF[1]>G[1]=0 510 ?CHR$(128,6,8,15,[0],[1]) 520 IFS<10GOTO600 530 [2]=[2]-2:IF[2]<-8[2]=80 540 ?CHR$(128,6,8,13,[2],[3]) 550 IFS<15GOTO600 560 [4]=[4]+3:IF[4]>80[4]=-8:[5]=G-8-RND(16) 570 ?CHR$(128,6,8,14,[4],[5]) 600 K=INKEY():L=PEEK(#1002) 610 IF (K=0)|(Y!=G)GOTO700 620 IF K=28 X=X-4:Z=1 630 IF K=29 X=X+4:Z=0 640 IF K=32 V=-3:W=0 650 IF L=17 W=-2 660 IF L=18 W=2 670 ?CHR$(128,5,16,12,Z) 680 ?CHR$(128,5,7,12,#FE) 700 IF V<4 Y=Y+3*V:V=V+1:X=X+W:WAIT4 ELSE ?CHR$(128,5,7,12,#FD) 710 IFX<0X=0:CLK 715 IFX>72X=72:CLK 720 ?CHR$(128,6,8,12,X,Y) 800 FORI=0TO4STEP2:J=9:F=5:IFI=0F=6 810 IF([I]>X-F)*([I]<X+F)*([I+1]>Y-F)*([I+1]<Y+F)J=I 820 IFJ!=0GOTO840 830 [0]=8+RND(56):[1]=0 831 ?"PC MUSIC SCORE 02 01 30 >B>E~~~":S=S+1:IFY<30S=S+1 832 ?CHR$(128,5,7,10,166+S/10) 833 ?CHR$(128,5,7,11,166+S%10) 840 IF(J=2)+(J=4) LRUN1,900 850 NEXT 860 WAIT2:GOTO500