简易打地鼠游戏

1、布局文件

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fl"
    android:background="@drawable/background"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/mouse" />
</FrameLayout>

2、在MainActivity中,声明程序中所需的成员变量

private int i = 0;//记录其打到了几只老鼠
	private ImageView mouse;//声明一个ImageView对象
	private Handler handler;//声明一个Handler对象
	public int[][] position = new int[][] { { 231, 325 }, { 424, 349 },
			{ 521, 256 }, { 543, 296 }, { 719, 245 }, { 832, 292 },
			{ 772, 358 } }; // 创建一个表示地鼠位置的数组

3、创建并开启一个新线程

Thread t = new Thread(new Runnable() {
			@Override
			public void run() {
				int index = 0; //创建一个记录地鼠位置的索引值
				while(!Thread.currentThread().isInterrupted()){
					index = new Random().nextInt(position.length);//产生一个随机数
					Message m = handler.obtainMessage();//获取一个Message
					m.arg1 = index;//保存地鼠标位置的索引值
					m.what = 0x101;//设置消息标识
					handler.sendMessage(m);//发送消息
					try {
						Thread.sleep(new Random().nextInt(500)+500);//休眠一段时间
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}
		});
        t.start();

4、创建一个Handler对象

handler = new Handler(){
        	@Override
        	public void handleMessage(Message msg) {
        		int index = 0;
        		if(msg.what == 0x101){
        			index = msg.arg1;//获取位置索引值
        			mouse.setX(position[index][0]); // 设置X轴位置
					mouse.setY(position[index][1]); // 设置Y轴位置
        			mouse.setVisibility(View.VISIBLE);//设置地鼠显示
        		}
        		super.handleMessage(msg);
        	}
        };

5、获取布局管理器中添加的ImageView组件

 mouse = (ImageView)findViewById(R.id.imageView1);//获取ImageView对象
        mouse.setOnTouchListener(new OnTouchListener() {
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				v.setVisibility(View.INVISIBLE);//设置地鼠不显示
				i++;
				Toast.makeText(MainActivity.this, "打到["+i+"]只地鼠!", Toast.LENGTH_SHORT).show();//显示消息提示框
				return false;
			}
		});


  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值