『コイン集め』はコインをひたすら集めるゲームです。
途中から出てくる『火』に触れるとゲームオーバー。
【操作】
←:プレイヤーが左に移動します。
→:プレイヤーが右に移動します。
スペースキー:プレイヤーがジャンプします。
←+スペースキー:プレイヤーが左にジャンプします。
→+スペースキー:プレイヤーが右にジャンプします。
【プログラム解説】
プログラムは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