【人気ゲーム】2人対戦シューティングゲームでゲーム大会!? for IchigoJam
プロジェクターで画面を映し出して、トーナメント形式でシューティングゲーム大会をした様子はこちら↓
大盛り上がり!
#IchigoJam シューティング大会決勝戦の模様をお届けします。
— Hana道場 (@hanadojo_sabae) December 26, 2019
一発撃ったら攻守交代のハラハラ感#出張Hana道場 pic.twitter.com/ehvbiZO8Ma
当時のプログラムはこちら↓
#IchigoJam で2人対戦シューティングゲームをつくりました!
— Hana道場【師範】 (@sihan_ichigojam) September 12, 2019
一発撃ったら、攻守交代です。#Hana道場 でも盛り上がったのでオススメです。 pic.twitter.com/NW9m5Ss1uf
子どもたちから、攻守がどちらかわかりやすくして欲しいと要望を受けたので、改良版をつくりました。
【改良版プログラム】
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を多用しています。
<改造ポイント>
子どもたちにトーナメントをした時に、攻め側がなかなか発射しないことがありました。攻めには制限時間を設けて、画面に表示するのがいいと思います。
【実行画面】
CC BY Hana道場師範 / @shihan_hanadojo