【Android实例】打地鼠小游戏
实现结果
代码实现
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实例】打地鼠小游戏相关推荐
- Android实现打地鼠小游戏
android实现打地鼠小游戏的具体代码,供大家参考.下方游戏时间控制:当用户点击开始后,开启线程控制总时间的线程.弹出老鼠的线程和计时线程,总时间设定为60s,控制总时间的线程即sleep共60s, ...
- Android Studio打地鼠小游戏
点击开始游戏按钮后界面出现地鼠,出现20次地鼠后游戏结束 MainActivity.java package com.example.task0322; // 名字改一下import android. ...
- java android 打地鼠_Android实现打地鼠小游戏
本文实例为大家分享了Android实现打地鼠小游戏的具体代码,供大家参考,具体内容如下 实现结果 代码实现 playmouse.java package com.example.playmouse; ...
- android打地鼠设计报告,android开发中利用handler制作一个打地鼠小游戏
android开发中利用handler制作一个打地鼠小游戏 发布时间:2020-11-25 15:21:11 来源:亿速云 阅读:136 作者:Leah 这期内容当中小编将会给大家带来有关androi ...
- java 打地鼠 源代码_Java实现的打地鼠小游戏完整示例【附源码下载】
本文实例讲述了Java实现的打地鼠小游戏.分享给大家供大家参考,具体如下: 这里涉及到java线程和GUI的相关知识,一个简单的java小游戏打地鼠,有兴趣的朋友可以优化一下.先来看看运行效果: 具体 ...
- 敲地鼠java_Java实现的打地鼠小游戏完整示例【附源码下载】
本文实例讲述了Java实现的打地鼠小游戏.分享给大家供大家参考,具体如下: 这里涉及到java线程和GUI的相关知识,一个简单的java小游戏打地鼠,有兴趣的朋友可以优化一下.先来看看运行效果: 具体 ...
- python打地鼠代码_vue实现打地鼠小游戏
本文实例为大家分享了vue实现打地鼠小游戏的具体代码,供大家参考,具体内容如下 效果图如下: 代码如下: 打地鼠游戏 {{n}}号地鼠 设置参数 速度: 总数: 开始 统计分数面板 总数: {{TOT ...
- 如何用python制作五子棋游戏_Python制作打地鼠小游戏
原文链接 Python制作小游戏(二十一)mp.weixin.qq.com 效果展示 打地鼠小游戏https://www.zhihu.com/video/1200492442610450432 简介 ...
- 【180730】WinForm打地鼠小游戏源码
本源码是采用WinForm进行开发的一个并非简单的打地鼠小游戏,有动画效果哈!有打地鼠.计分.过关等功能. 菜单功能: 1.运行游戏后,输入玩家姓名,点击开始 2.用鼠标点击从洞中钻出的地鼠给予打击 ...
- linux打地鼠游戏代码,JavaScript实现打地鼠小游戏
一.实验说明 1. 环境介绍 本实验环境采用Ubuntu Linux桌面环境,实验中会用到桌面上的程序: Xfce终端: Linux命令行终端,打开后会进入Bash环境,可以使用Linux命令 Fir ...
最新文章
- 如何使用OpenCV和Socket进行视频聊天?
- JAVA正则表达式的学习
- MPMoviePlayerController 电影播放器
- python语言核心技术_python核心技术
- 【自动驾驶】毫米波雷达相关知识专题
- 李沐《动手学深度学习》PyTorch 实现版开源,瞬间登上 GitHub 热榜!
- Access to script at ‘xxx‘ from origin ‘null‘ has been blocked by CORS policy: Cross origin requests
- 文件系统:Ext3和Ext4
- python读取文件中的内容_python 读取文件夹中的文件内容
- creator qt 字体太小_qt ttf 字体太小的解决方法
- 正则判断windows文件路径是否正确
- 在SQL Server中的数据库之间复制表的六种不同方法
- Java 高阶 —— native 关键字与 JNI
- asp.net(C#)网站发布后 Global.asax 里 Application_Error 不执行的问题
- @SuppressWarnings注解的详解
- 区块链 hyperledger fabric的系统链码有哪些类型 LSCC ESCC VSCC CSCC是什么
- 几年前运放有源滤波器设计思考点
- java order()_Java Comparator naturalOrder()用法及代码示例
- excel 与mysql交互_excel和数据库交互
- 小米官网新头部logo保存CSS中显示不全问题
热门文章
- 2021高考杭二中成绩查询,2020年杭州高考各高中成绩及本科升学率数据排名及分析...
- Android O Doze模式的状态
- 手机第二个微信怎么弄 手机如何弄两个微信 手机弄两个微信方法
- 你也可以做一个小米魅族网站(WOW.js:WOW.js – 在页面滚动时展现动感的元素动画效果)
- Python颜值测试器 测试你与女神的颜值差距
- C语言按子串分割字符串
- 统计学两个分布:Z 分布和student-t 分布(假设检验Hypothesis test、置信区间Confidence interval)
- android 画 月牙曲线,牙齿矫正真能改变脸型?这四类人最有发言权
- 用户 用户头像 数据库设计
- Mybatis-plus sql注入以及防止sql注入