2014年8月12日火曜日

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

更新が遅くなってしまい、すいません。
さて、前回に引き続き、今回は、もぐらを叩いたときの処理を実装します。

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


画面 (activity_main.xml) を一部修正します。
スコアを表示するテキストにID(名前)を付けます。
IDはプログラムから参照するものだけ付にけます。
参照しないものについては付けなくてもOKです。

「scoreText」という名前にしました。


次に、プログラムからスコアを操作するための変数を定義します。(19行目)
private TextView mScoreText;
定義した変数に値をセットします。(33行目)
mScoreText = (TextView) findViewById(R.id.scoreText);

スコアを管理する変数も定義します。(20行目)
private int mScore;
スコアを初期化します。(32行目)
mScore = 0;

ボタンがクリックされたときの処理を記述します。(131行目〜)
private View.OnClickListener mButtonClicked = new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        mScore++;
        String strScore = String.valueOf(mScore);
        mScoreText.setText(strScore);
    }
};

とりあず、スコアを1ずつ増やしていくようにします。

ボタンと上記処理を紐付けます。(61行目〜)
for (int row = 0; row < mButton.length; row++) {
    for (int col = 0; col < mButton[1].length; col++) {
        mButton[row][col].setOnClickListener(mButtonClicked);
    }

}
ここまでできたら実行してみましょう。


ボタンをクリックするとスコアが1ずつ増えていくと思います。
ただ、どのボタンでもスコアが増えていくので、もぐらがいるかどうかの
判定をするようにします。

もぐらがどのボタンに表示されているかを管理するための変数を定義します。(18行目)
private Button mMoleButton;
上記変数を初期化します。 (31行目)
mMoleButton = null;
もぐらを表示するときに上記変数に値をセットします。(128行目)
mMoleButton = mButton[row][col];

ボタンがクリックされたときの処理で判定を行います。(134行目)
if (view != mMoleButton) {
    return;
}

もぐらでない場合は何もせずに戻るようにします。

ここまでできたら実行してみましょう。


もぐらをクリックしたときはスコアが増えて、他の場所をクリックしたときは何も起きないようになったと思います。

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




0 件のコメント:

コメントを投稿