
PICO-8で遊ぼう(ビームを撃つ!味付け編
前回からの続きでビームを撃つブルラビくんに味付け(演出)をします。
本日の教科書
発射間隔の調整
ビームを撃てるようにはなりましたが、発射間隔が短すぎて数珠繋ぎになっていますので、発射間隔の調整用にテーブルPCに発射間隔のカウント用の変数を追加します。

input()に以下を追加します(赤枠)。

pc.gun_intervalが0のときのみビームを撃てるようにします。また、ビームを一発撃った直後に、pc.gun_intervalに値を設定します。次に発射できるようになるまで何フレーム待つかという値で、ここでは8にしています(max_gun_interval)。
update_pc()にpc.gun_intervalを毎フレーム減らす処理を追加します。


まだ白兎状態でださいけど・・・。
ビームっぽくしてみる
ただの黄色の点ではビームに見えないのでもうちょっとビームっぽい形にしてみます。
※点(pset)からビームのグラフィックを描いてスプライト(spr)を表示するというパターンもありますね。

draw_beam() の中身を書き換えます。
pset()からline()に変更して、線を引いてみます。最初の引数2つでビームの進行方向(b.dx,b.dy)、に少しだけ伸ばした座標を指定します。少し伸ばす量が変数 beam_lenです。

マズルフラッシュ?演出をつける
ビームを撃ってるときのブルラビくんがただの白兎でカッコ悪いので、撃った瞬間だけパッパッパッと光る演出をつけてみます。

draw_pc()でpc.gun_intervalの状態をみてスプライトを切り替える処理を追加。

先ほどのコードの下に追加する形で更なるマズルフラッシュの演出を付け加えてみます。

pc.gun_intervalの状態に沿って小さくなっていく円を描くことで銃口から火花が出てるかのような演出(のつもり)
