一度だけの再生

テスト用の効果音 PICO-8
テスト用の効果音

PICO-8スネークゲーム、「ピコニョロ」で、繰り返し処理内でのサウンド再生を一度だけしたいので、そのように動く処理を書きました。

PICO-8では、30分の1、もしくは60分の1秒で、処理が繰り返されています。

入力の読み取り、座標変更、描画については、毎度処理を実行すればよいのですが、サウンド再生となると、話は変わってきます。

サウンド再生の命令 sfx() や music() は、実行されると、はじめから音を鳴らします。

その為、繰り返し処理内で命令を書くと、毎度再生されることになるので、音の最初の部分だけが細かく再生され、「ビビビビビ〜」といった感じになり、思うように再生されません。

そこで、自分で一度だけ再生する処理を書くことにしました。

処理としては、bool値のテーブルを作り、その値を判別して音を再生するようにするのです。

そうすれば、一番はじめだけ再生されて、あとは再生されなくなります。

再生許可スイッチを設けるのです。

実装してみたので、テストしてみました。

ゲーム中にボタンを押すと、再生許可スイッチをチェックして、音が再生されるようにしました。

すると、ボタンを押すと音が鳴り、その後ボタンを押しても音は鳴りませんでした。

成功です(多分)。

スイッチがちゃんと効いているか、スイッチの中身も表示してみました。

割当の効果音ナンバーは30(テーブル内では1から始まるので、+1させて、31番)が、falseと表示されています(trueなら再生可)。

再生許可スイッチの中身を見てみる
再生許可スイッチの中身を見てみる

これで、様々なSEの箇所に実装していきます(何度も書くので、関数化しました)。

コメント

タイトルとURLをコピーしました