Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

2018/06/17 15:09:58

MixJuice GET URL : kidspod.club/mj/499

コイン集め

『コイン集め』はコインをひたすら集めるゲームです。
途中から出てくる『火』に触れるとゲームオーバー。

【操作】
←:プレイヤーが左に移動します。
→:プレイヤーが右に移動します。
スペースキー:プレイヤーがジャンプします。
←+スペースキー:プレイヤーが左にジャンプします。
→+スペースキー:プレイヤーが右にジャンプします。

【プログラム解説】
プログラムは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点に変更

SOURCE CODE

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

COMMENT

Kidspod運営チーム
Kidspod運営チーム2018/06/29 19:05:59

すごい! 音楽もグラフィックも、見事なまでに世界一有名なゲームですね。起動させたとき、思わずうなってしまいました。大作です!