2014年8月15日金曜日

モグラ叩きゲームで学ぶアンドロイドプログラミング (7/8)

前回は、Game Overを出すところまでやりました。
今回は、音楽でも付けてよりゲームらしくします。

全体のソースコードは以下にあります。
https://gist.github.com/mrp1q7z/49d45fea537c07d6a202

その前に最初のスコアが100になっているので0にします。
<TextView
android:id="@+id/scoreText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="0"
android:textSize="30sp" />

activity_main.xmlの「text="100"」を「text="0"」に変更します。

適当な効果音を探してきます。
今回は、以下にしました。ありがとうございました。
・「middle_punch1/中打」「swing1/素振り1」 by 小森平さん
http://taira-komori.jpn.org/attack01.html

※音楽や画像の素材を利用する場合は利用規約をよく読んで違反なきよう使いましょう。

ダウンロードした効果音を「res/raw」にコピーします。
「raw」フォルダがない場合は新たに作成します。


ソースを変更していきます。
効果音を鳴らすために必要な変数を宣言します。(29行目〜)
private SoundPool mSound;
private int[] mSoundId;


効果音をロードします。(37行目〜)
mSoundId = new int[2];
mSound = new SoundPool(mSoundId.length, AudioManager.STREAM_MUSIC, 0);
mSoundId[0] = mSound.load(getApplicationContext(), R.raw.middle_punch1, 0);
mSoundId[1] = mSound.load(getApplicationContext(), R.raw.swing1, 0);


ボタンをクリックしたときに効果音を再生するようにします。(158、161行目)
private View.OnClickListener mButtonClicked = new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (view != mMoleButton) {
            mSound.play(mSoundId[1], 1.0F, 1.0F, 0, 0, 1.0F);
            return;
        }
        mSound.play(mSoundId[0], 1.0F, 1.0F, 0, 0, 1.0F);

    ....
}
もぐらを叩いた時と穴を叩いた時で再生する音を変えています。

終了時に効果音の開放を行います。(138行目〜)
@Override
public void onDestroy() {
    super.onDestroy();
    mSound.release();
}

実行してみます。
音が出るようになったと思います。

今日はここまで。次回に続く。

0 件のコメント:

コメントを投稿