实现结果

代码实现

playmouse.java

package com.example.playmouse;import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;import java.util.Random;
public class playmouse extends AppCompatActivity {/************1.定义变量、对象、洞穴坐标******************/private int i=0;//记录打到的地鼠个数private ImageView mouse;//定义 mouse 对象private TextView info1; //定义 info1 对象(用于查看洞穴坐标)private Handler handler;//声明一个 Handler 对象public int[][] position=new int[][]{{277, 200}, {535, 200}, {832, 200},{1067,200}, {1328, 200}, {285, 360},{645, 360}, {1014,360}, {1348, 360},{319, 600},{764, 600},{1229,600}};//创建一个表示地鼠位置的数组 @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置不显示顶部栏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//设置横屏模式/************2.绑定控件*****************/mouse = (ImageView) findViewById(R.id.imageView1);info1 = findViewById(R.id.info);/************获取洞穴位置*****************///通过 logcat 查看 【注】:getRawY():触摸点距离屏幕上方的长度(此长度包括程序项目名栏的)info1.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:float x = event.getRawX();float y = event.getRawY();Log.i("x:" + x, "y:" + y);break;default:break;}return false;}});/************3.实现地鼠随机出现*****************///创建 Handler 消息处理机制handler = new Handler() {@Overridepublic void handleMessage(@NonNull Message msg) {//需要处理的消息int index;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);}};// 创建线程Thread t = new Thread(new Runnable() {@Overridepublic void run() {int index = 0;// 定义一个记录地鼠位置的索引值while (!Thread.currentThread().isInterrupted()) {index = new Random().nextInt(position.length);// 产生一个随机整数(范围:0<=index<数组长度)Message m = handler.obtainMessage();//创建消息对象m.what = 0x101;//设置消息标志m.arg1 = index;// 保存地鼠标位置的索引值handler.sendMessage(m);// 发送消息通知 Handler 处理try {Thread.sleep(new Random().nextInt(500) + 500); // 休眠一段时间} catch (InterruptedException e) {e.printStackTrace();}}}});t.start();/************4.实现点击地鼠后的事件:让地鼠不显示&显示消息*****************/// 添加触摸 mouse 后的事件mouse.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {v.setVisibility(View.INVISIBLE);//设置地鼠不显示i++;Toast.makeText(playmouse.this, "打到[ " + i + " ]只地鼠!",Toast.LENGTH_SHORT).show(); // 显示消息提示框return false;}});}}

activity_main.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/fl"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/background"><ImageViewandroid:id="@+id/imageView1"android:layout_width="72dp"android:layout_height="72dp"android:src="@drawable/mouse1"/><TextViewandroid:id="@+id/info"android:layout_width="fill_parent"android:layout_height="fill_parent"/>
</FrameLayout>

styles.xml(把顶部通知栏去掉)

<resources><!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item></style></resources>

图片资源

background.jpg

mouse.png

【Android实例】打地鼠小游戏相关推荐

  1. Android实现打地鼠小游戏

    android实现打地鼠小游戏的具体代码,供大家参考.下方游戏时间控制:当用户点击开始后,开启线程控制总时间的线程.弹出老鼠的线程和计时线程,总时间设定为60s,控制总时间的线程即sleep共60s, ...

  2. Android Studio打地鼠小游戏

    点击开始游戏按钮后界面出现地鼠,出现20次地鼠后游戏结束 MainActivity.java package com.example.task0322; // 名字改一下import android. ...

  3. java android 打地鼠_Android实现打地鼠小游戏

    本文实例为大家分享了Android实现打地鼠小游戏的具体代码,供大家参考,具体内容如下 实现结果 代码实现 playmouse.java package com.example.playmouse; ...

  4. android打地鼠设计报告,android开发中利用handler制作一个打地鼠小游戏

    android开发中利用handler制作一个打地鼠小游戏 发布时间:2020-11-25 15:21:11 来源:亿速云 阅读:136 作者:Leah 这期内容当中小编将会给大家带来有关androi ...

  5. java 打地鼠 源代码_Java实现的打地鼠小游戏完整示例【附源码下载】

    本文实例讲述了Java实现的打地鼠小游戏.分享给大家供大家参考,具体如下: 这里涉及到java线程和GUI的相关知识,一个简单的java小游戏打地鼠,有兴趣的朋友可以优化一下.先来看看运行效果: 具体 ...

  6. 敲地鼠java_Java实现的打地鼠小游戏完整示例【附源码下载】

    本文实例讲述了Java实现的打地鼠小游戏.分享给大家供大家参考,具体如下: 这里涉及到java线程和GUI的相关知识,一个简单的java小游戏打地鼠,有兴趣的朋友可以优化一下.先来看看运行效果: 具体 ...

  7. python打地鼠代码_vue实现打地鼠小游戏

    本文实例为大家分享了vue实现打地鼠小游戏的具体代码,供大家参考,具体内容如下 效果图如下: 代码如下: 打地鼠游戏 {{n}}号地鼠 设置参数 速度: 总数: 开始 统计分数面板 总数: {{TOT ...

  8. 如何用python制作五子棋游戏_Python制作打地鼠小游戏

    原文链接 Python制作小游戏(二十一)​mp.weixin.qq.com 效果展示 打地鼠小游戏https://www.zhihu.com/video/1200492442610450432 简介 ...

  9. 【180730】WinForm打地鼠小游戏源码

    本源码是采用WinForm进行开发的一个并非简单的打地鼠小游戏,有动画效果哈!有打地鼠.计分.过关等功能. 菜单功能: 1.运行游戏后,输入玩家姓名,点击开始 2.用鼠标点击从洞中钻出的地鼠给予打击 ...

  10. linux打地鼠游戏代码,JavaScript实现打地鼠小游戏

    一.实验说明 1. 环境介绍 本实验环境采用Ubuntu Linux桌面环境,实验中会用到桌面上的程序: Xfce终端: Linux命令行终端,打开后会进入Bash环境,可以使用Linux命令 Fir ...

最新文章

  1. 如何使用OpenCV和Socket进行视频聊天?
  2. JAVA正则表达式的学习
  3. MPMoviePlayerController 电影播放器
  4. python语言核心技术_python核心技术
  5. 【自动驾驶】毫米波雷达相关知识专题
  6. 李沐《动手学深度学习》PyTorch 实现版开源,瞬间登上 GitHub 热榜!
  7. Access to script at ‘xxx‘ from origin ‘null‘ has been blocked by CORS policy: Cross origin requests
  8. 文件系统:Ext3和Ext4
  9. python读取文件中的内容_python 读取文件夹中的文件内容
  10. creator qt 字体太小_qt ttf 字体太小的解决方法
  11. 正则判断windows文件路径是否正确
  12. 在SQL Server中的数据库之间复制表的六种不同方法
  13. Java 高阶 —— native 关键字与 JNI
  14. asp.net(C#)网站发布后 Global.asax 里 Application_Error 不执行的问题
  15. @SuppressWarnings注解的详解
  16. 区块链 hyperledger fabric的系统链码有哪些类型 LSCC ESCC VSCC CSCC是什么
  17. 几年前运放有源滤波器设计思考点
  18. java order()_Java Comparator naturalOrder()用法及代码示例
  19. excel 与mysql交互_excel和数据库交互
  20. 小米官网新头部logo保存CSS中显示不全问题

热门文章

  1. 2021高考杭二中成绩查询,2020年杭州高考各高中成绩及本科升学率数据排名及分析...
  2. Android O Doze模式的状态
  3. 手机第二个微信怎么弄 手机如何弄两个微信 手机弄两个微信方法
  4. 你也可以做一个小米魅族网站(WOW.js:WOW.js – 在页面滚动时展现动感的元素动画效果)
  5. Python颜值测试器 测试你与女神的颜值差距
  6. C语言按子串分割字符串
  7. 统计学两个分布:Z 分布和student-t 分布(假设检验Hypothesis test、置信区间Confidence interval)
  8. android 画 月牙曲线,牙齿矫正真能改变脸型?这四类人最有发言权
  9. 用户 用户头像 数据库设计
  10. Mybatis-plus sql注入以及防止sql注入