上篇文章中对开始打地鼠游戏的思路做了简单的介绍,现在来具体的说一说开始打地鼠游戏的实现,先说说布局,用LinearLayout或TableLyout都可以。上面一行是4个TextView下面的地洞是ImageButton。游戏中打中或没打中地鼠都更新会对应按钮背景图。打中地鼠的效果图(图1)和没打中的效果图(图2)。
游戏中需要开启一个线程来控制游戏时间,更新显示剩余时间时,游戏0.5s更新一次,游戏时间为30s,因此更新次数是游戏时间的二倍。当游戏时间为0s时游戏停止关闭游戏界面并开启记录玩家信息的窗口。该线程同时产生一个随机数(1-12)来指定地鼠出现位置,由于子线程不能更新UI,需要通过handler发送消息来更新UI。更新界面时将每一个按钮背景都有重置为地洞,再更新地鼠出现位置的图片,这样会清除由于点击出现的锤子和上一次地鼠出现位置设置的图片。当用户点击屏幕是,如果打中地鼠,效果如图1,没打中效果如图2,并且如果开启了音效,会播放不同的打击声音。最后在游戏界面不可见是关闭线程。
代码如下:
package cn.com.cyj.mouse.services;
import java.util.HashMap;
import java.util.Random;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import cn.com.cyj.mouse.R;
import cn.com.cyj.mouse.ui.BaseActivity;
import cn.com.cyj.mouse.ui.MouseStart;
/**
* 游戏开始的界面:游戏中有12个ImageButton,每个ImageButton背景设置成地鼠洞,游戏中开启一个线程控制游戏时间
*
* @author cyj
*
*/
public class GameRun extends BaseActivity {
/**