【はじめてのプチコン】プレイヤの追加(その2) | りょうのゲーム塾

りょうのゲーム塾

再開、準備中。

【注意】サブルーチンについての記事を先にお読みください!!

チェックポイント
今後、プログラムの解説を行う場合にプログラムがブロック化されている方が見やすくなるのでサブルーチン化することにします。
現行のサンプルプログラムおよびサブルーチン化したプログラムを記載します。


■プログラム
サブルーチンを使用していない場合
0001 ' initialize
0002 UFO_X = 0:UFO_F = 0
0003 PLY_X = 15
0004 ' game loop
0005 @LOOP
0006 VSYNC 1
0007 CLS
0008 ' UFO
0009 IF UFO_F!=0 GOTO @UFO_MVL
0010 ' move right
0011 LOCATE UFO_X, 0
0012 PRINT "A"
0013 UFO_X = UFO_X + 1
0014 IF UFO_X < 32 GOTO @UFO_END
0015 UFO_X = 31
0016 UFO_F = 1
0017 GOTO @UFO_END
0018 ' move left
0019 @UFO_MVL
0020 LOCATE UFO_X, 0
0021 PRINT "A"
0022 UFO_X = UFO_X - 1
0023 IF UFO_X >= 0 GOTO @UFO_END
0024 UFO_X = 0
0025 UFO_F = 0
0026 @UFO_END
0027 ' player
0028 LOCATE PLY_X,21
0029 PRINT "P"
0030 GOTO @LOOP


■プログラム
サブルーチンを使用した場合
0001 ' initialize
0002 UFO_X = 0:UFO_F = 0
0003 PLY_X = 15
0004 ' game loop
0005 @LOOP
0006 VSYNC 1
0007 CLS
0008 ' task
0009 GOSUB @UFO
0010 GOSUB @PLAYER
0011 GOTO @LOOP
0012 ' UFO
0013 @UFO
0014 IF UFO_F!=0 GOTO @UFO_MVL
0015 ' move right
0016 LOCATE UFO_X, 0
0017 PRINT "A"
0018 UFO_X = UFO_X + 1
0019 IF UFO_X < 32 THEN RETURN
0020 UFO_X = 31
0021 UFO_F = 1
0022 RETURN
0023 ' move left
0024 @UFO_MVL
0025 LOCATE UFO_X, 0
0026 PRINT "A"
0027 UFO_X = UFO_X - 1
0028 IF UFO_X >= 0 THEN RETURN
0029 UFO_X = 0
0030 UFO_F = 0
0031 RETURN
0032 ' player
0033 @PLAYER
0034 LOCATE PLY_X,21
0035 PRINT "P"
0036 RETURN


プログラムの解説する場合にはこのプログラムをブロック毎に説明した方が分かりやすくなります。今回のサンプルの場合は次のようになります。

■プログラム
プログラムの初期化
0001 ' initialize
0002 UFO_X = 0:UFO_F = 0
0003 PLY_X = 15


■プログラム
ゲームループ
0004 ' game loop
0005 @LOOP
0006 VSYNC 1
0007 CLS
0008 ' task
0009 GOSUB @UFO
0010 GOSUB @PLAYER
0011 GOTO @LOOP


■プログラム
UFOタスク
0012 ' UFO
0013 @UFO
0014 IF UFO_F!=0 GOTO @UFO_MVL
0015 ' move right
0016 LOCATE UFO_X, 0
0017 PRINT "A"
0018 UFO_X = UFO_X + 1
0019 IF UFO_X < 32 THEN RETURN
0020 UFO_X = 31
0021 UFO_F = 1
0022 RETURN
0023 ' move left
0024 @UFO_MVL
0025 LOCATE UFO_X, 0
0026 PRINT "A"
0027 UFO_X = UFO_X - 1
0028 IF UFO_X >= 0 THEN RETURN
0029 UFO_X = 0
0030 UFO_F = 0
0031 RETURN


■プログラム
プレイヤタスク
0032 ' player
0033 @PLAYER
0034 LOCATE PLY_X,21
0035 PRINT "P"
0036 RETURN