Hana道場【師範】のブログ

IchigoJamの徹底解説ブログ

【人気ゲーム】2人対戦シューティングゲームでゲーム大会!? for IchigoJam

f:id:hanadojo_sihan:20200202002552j:plain


プロジェクターで画面を映し出して、トーナメント形式でシューティングゲーム大会をした様子はこちら↓

大盛り上がり!

 当時のプログラムはこちら↓

 

子どもたちから、攻守がどちらかわかりやすくして欲しいと要望を受けたので、改良版をつくりました。

 

【改良版プログラム】

5 X=12:W=3:VIDEO3
20 K=INKEY()
30 LCX,0:?CHR$(249-244*!F)
40 LCW,10:?CHR$(249-244*F);
50 X=(X-(K=28)+(K=29))&15
60 W=(W-(K=90)+(K=67))&15
70 IF K=31&&!F Y=0:GSB110
80 IF K=88&&F Y=10:GSB110
90 GOTO10
100 ?"|"
110 Y=Y-F+!F
120 IF F LCW,Y ELSE LCX,Y
130 IF Y>0&&Y<10 GOTO100
140 IF X!=W F=!F:CLK:RTN
150 ?CHR$(244)

 

<操作方法>

プレイヤー1:左右キーで移動、下キーで発射

プレイヤー2:Zキー・Cキーで移動、Xキーで発射

 

<ルール>

攻撃側が文字コード5のキャラになる。1発打って外したら攻守交代。

 

【プログラム解説】

5 X=12:W=3:VIDEO3
20 K=INKEY()
30 LCX,0:?CHR$(249-244*!F) F=0のときはプレイヤー1が攻め(文字コード5のキャラになる)
40 LCW,10:?CHR$(249-244*F); F=1のときはプレイヤー2が攻め(文字コード5のキャラになる)
50 X=(X-(K=28)+(K=29))&15 &は論理積(ヨコ座標を0〜15に指定)
60 W=(W-(K=90)+(K=67))&15  &は論理積(ヨコ座標を0〜15に指定)
70 IF K=31&&!F Y=0:GSB110 F=0かつ下キーを押したら、ビームのサブルーチンへ
80 IF K=88&&F Y=10:GSB110 F=1かつXキーを押したら、ビームのサブルーチンへ
90 GOTO10

100 ?"|" ビームアニメーションのサブルーチン
110 Y=Y-F+!F プレイヤーによって変わるビームの上下方向をFで制御
120 IF F LCW,Y ELSE LC X,Y プレイヤーによって変わるビームの座標をFで分岐
130 IF Y>0&&Y<10 GOTO100 サブルーチン繰り返し条件
140 IF X!=W F=!F:CLK:RTN 当たり判定。外れたらFを0⇄1を入れ変える(攻守交代)
150 ?CHR$(244) 当たった場合、爆発キャラを表示


プログラムを少しでも短くするために、攻守フラグ用変数のFを多用しています。

 

<改造ポイント>

子どもたちにトーナメントをした時に、攻め側がなかなか発射しないことがありました。攻めには制限時間を設けて、画面に表示するのがいいと思います。

 

 【実行画面】

fukuno.jig.jp

 

CC BY Hana道場師範 / @shihan_hanadojo