読者です 読者をやめる 読者になる 読者になる

人工知能に関する断創録

人工知能、認知科学、心理学、ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。最近は、機械学習、Deep Learning、Kerasに関する記事が多いです。



ぴこぴこ音

Javagame

ゲームらしく効果音をつけてみます。今回つけるのは弾の発射音、エイリアンの断末魔、プレイヤーの爆発音です。ここではWAVEの再生(2004/10/3)と同じくAudioClipを使います。

AudioClipは同時再生ができないという問題があります。これを解決するにはJava Sound APIが必要です。Java Sound APIを使おうと思ったのだけど解説するほど完全には理解できていません・・・しっかり理解してから使おうと思います。

サウンドは例のごとくザ・マッチメイカァズからお借りしています。

invader07.jar

サウンド再生についてはWAVEの再生(2004/10/3)と同じなので難しくありません。MainPanelクラスでまとめてAudioClipを定義しています。

    // サウンド
    private AudioClip fireSound;
    private AudioClip crySound;
    private AudioClip bombSound;

コンストラクタでロードしています。

    // サウンドをロード
    fireSound = Applet.newAudioClip(
                    getClass().getResource("se/pi02.wav"));
    crySound = Applet.newAudioClip(
                    getClass().getResource("se/pi00.wav"));
    bombSound = Applet.newAudioClip(
                    getClass().getResource("se/bom28_a.wav"));

鳴らすのはplay()です。どこで鳴らしているかはコードをご覧下さい。

    // サウンドを再生
    fireSound.play();
    crySound.play();
    bombSound.play();

先ほど説明したようにAudioClipは同時再生ができません。つまり、ある音が鳴っているときに他の音を鳴らそうとしても鳴りません。この例では弾を連続発射しているときにときどき爆発音が鳴らない場合があります。

これを完全に解決するにはJava Sound APIを使うしかありません。ただできるだけ再生時間が短い効果音を使うことである程度回避できます。

まああんまりぴこぴこなると耳障りでうるさいんですがね(笑)