安卓应用实现简易打地鼠游戏Word文件下载.docx
- 文档编号:17320201
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:8
- 大小:396.48KB
安卓应用实现简易打地鼠游戏Word文件下载.docx
《安卓应用实现简易打地鼠游戏Word文件下载.docx》由会员分享,可在线阅读,更多相关《安卓应用实现简易打地鼠游戏Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。
学院综合实验中心
一·
内容提要
本程序实现了一个安卓APP的简易打地鼠游戏,地鼠会在屏幕上随机显示,触摸地鼠后,该地鼠将不显示,同时在屏幕上通过消息提示框显示达到了几只地鼠,地鼠出现的时间也是随机产生的。
运行环境采用eclipse,javaJDK,AndroidSDK,ATD插件来完成对本次实验的运行。
题目------------------------------------------------------------------------------------------------------------------4
时间------------------------------------------------------------------------------------------------------------------4
功能设计------------------------------------------------------------------------------------------------------------4
数据结构的设计---------------------------------------------------------------------------------------------------5
算法的设计----------------------------------------------------------------------------------------------------------7
关键代码-------------------------------------------------------------------------------------------------------------8
参考资料--------------------------------------------------------------------------------------------------------------13
教学实习总结报告-------------------------------------------------------------------------------------------------13
题目
本程序实现了一个安卓APP的简易打地鼠游戏。
二.时间
2016.06.20—2016.06.24
三.功能设计
本实验应用了线程的相关知识来实现打地鼠的相关功能,首先从网络上下载相关图片来实现页面的布局,然后绑定主Activity,声明相关变量,创建线程,再利用java所提供的Random()方法获取随机位置与随机时间,传递此消息,再利用消息处理类handler中的handleMessage()方法接收消息,并在屏幕上显示。
再为地鼠图片设置监视事件监听器来使其打到地鼠有反应并用消息提示框显示打中地鼠个数。
1.设置地鼠出现位置和出现时间的相关功能点:
创建并开启一个新线程,在重写的run()方法中,创建一个记录地鼠位置的索引值的变量,并实现一个循环,在该循环中,首先生成一个随机数,来表示地鼠出现的位置,并获取一个Message对象,然后将生成的随机数作为地鼠的位置的索引值保存到Message对象中,再为该Message设置一个消息标识并发送消息,最后让线程休眠一段时间(该时间随机产生作为地鼠出现的时间)。
2.设置地鼠出现的相关功能点:
创建一个Handler对象,在重写的handleMessage()方法中,首先定义一个记录地鼠位置索引值的变量,然后使用if语句根据消息标识判断是否为指定的消息,如果是,则获取消息中保存的地鼠位置索引值,并设置地鼠在指定位置显示。
3.来统计打中地鼠个数的相关功能点:
获取布局管理器中添加的ImageView组件,并为该组件添加触摸监听器,在重写的onTouch()方法中,首先设置地鼠不显示,然后成功打中地鼠后,将i的值加1,再通过消息提示框提示打中了几个地鼠。
四·
数据结构的设计
1.创建并开启一个新线程,在重写的run()方法中,利用了一个while循环,当线程没有被终止时执行循环,首先定义index并初始化赋值为0,然后利用Random()方法产生0~数组长度之间的随机数,并赋值给index,然后把这个消息发送给handler对象,利用handler中的handlemessage()方法接受消息,最后用try{}catch()语句捕获异常,并把线程的休眠时间利用Random()方法设置为随机时间,用于地鼠随机出现的时间。
代码如下:
Threadt=newThread(newRunnable(){
@Override
publicvoidrun(){
intindex=0;
while(!
Thread.currentThread().isInterrupted()){
index=newRandom().nextInt(position.length-1)+0;
Messagem=handler.obtainMessage();
m.what=0x101;
m.arg1=index;
handler.sendMessage(m);
try{
Thread.sleep(newRandom().nextInt(500)+500);
}catch(InterruptedExceptione){
e.printStackTrace();
}}}});
t.start();
}
2.获取布局管理器中添加的ImageView组件,并为该组件添加触摸监听器,在重写的onTouch()方法中,首先设置地鼠不显示,然后利用i++语句实现对打中的地鼠数加一,并显示消息提示框,提示打中多少只地鼠。
mouse=(ImageView)findViewById(R.id.imageView1);
//获取ImageView对象
mouse.setOnTouchListener(newOnTouchListener(){
publicbooleanonTouch(Viewv,MotionEventevent){
v.setVisibility(View.GONE);
//设置地鼠不显示
i++;
Toast.makeText(MainActivity.this,"
打到["
+i+"
]只地鼠!
"
Toast.LENGTH_SHORT).show();
//显示消息提示框
returnfalse;
});
五.算法的设计
(一).首先在MainActivity中,声明程序中所需要的成员变量,具体算法如下:
1定义private变量I,mouse,handler;
2定义存储地鼠位置的二维数组position并为其初始化;
(二).创建并开启一个新线程,让时间随机产生,用于地鼠随机出现,具体算法如下:
1创建一个新线程,重写run()方法,定义index为0;
2写while()循环,条件是当线程没终止时执行循环;
3获取随机位置坐标并传递这个坐标;
4设置时间是随机的,并用try…catch…语句捕获异常;
(三).创建一个handler()对象,设置地鼠在指定位置显示,具体算法如下:
1创建handleMessage()方法接收消息;
2当消息标示与上述传递的消息标识一致时接收消息;
3获取消息的索引值并设置地鼠出现的随机位置,让其显示。
(四).首先重写onCreat(),显示消息提示框提示打中地鼠的个数。
算法如下:
1获取布局中的图像视图组件;
2为图像视图添加事件监听器,设置点到地鼠,地鼠消失;
3当打中地鼠时i加1,显示消息提示框,提示打中地鼠的个数。
六.关键代码
1.页面布局所用代码:
<
FrameLayoutxmlns:
android="
android:
id="
@+id/fl"
background="
@drawable/background"
layout_width="
fill_parent"
layout_height="
>
ImageView
@+id/imageView1"
wrap_content"
src="
@drawable/mouse"
/>
/FrameLayout>
2.实现打地鼠主要功能模块代码:
publicclassMainActivityextendsActivity{
privateinti=0;
//记录其打到了几只地鼠
privateImageViewmouse;
//声明一个ImageView对象
privateHandlerhandler;
//声明一个Handler对象
publicint[][]position=newint[][]{{603,532},{535,624},{231,325},{424,349},
{521,256},{543,296},{719,245},{832,292},
{772,358}};
//创建一个表示地鼠位置的数组
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mouse=(ImageView)findViewById(R.id.imageView1);
Toast.LENGTH_SHORT).show();
handler=newHandler(){
publicvoidhandleMessage(Messagemsg){
if(msg.what==0x101){
index=msg.arg1;
//获取位置索引值
mouse.setX(position[index][0]);
//设置X轴位置
mouse.setY(position[index][1]);
//设置Y轴位置
Log.i("
222:
position[index][0]+"
"
+position[index][1]);
mouse.setVisibility(View.VISIBLE);
//设置地鼠显示
super.handleMessage(msg);
};
//创建一个记录地鼠位置的索引值
//产生一个随机数
1111111:
index+"
);
//获取一个Message
//设置消息标识
//保存地鼠标位置的索引值
//发送消息
//休眠一段时间
//开启线程
相关截图如下:
七.参考资料
明日科技编著.Android从入门到精通(第一版).清华大学出版社,2012年9月
明日科技编著.JAVA从入门到精通(第一版).清华大学出版社,2012年9月
CSDN论坛:
八.教学实习总结报告
通过本次的实习,让我学会了如何利用安卓线程的知识来控制相关耗时操作,让我更加了解了如何创建新线程,开启线程,线程的休眠,线程的中断,利用handler类和Message类的相关方法来控制对线程的操作,进而控制相关UI界面的操作。
在编写该程序的过程中,出现了许多小的逻辑错误,例如地鼠出现的时间过长,地鼠不显示等问题,都是由于自己对知识的理解不到位和自己的大意疏忽导致的,使我认识到自己编程技术还有些欠缺,对知识的理解还不够透彻,应该多编写相关程序总结经验,自己要在写程序时一心一意,不断思考,不断总结,这样才能避免这些不应该犯的小错误;
也使我意识到自己Java方面的知识还有些欠缺,对相关方法的调用还不够熟练。
对于以后的学习,我要多加实践,认真总结,在做题之前要先思考,画出程序流程图,写出伪代码,有一个明确的思路,再开始编程,这样才会事半功倍,避免好多逻辑错误的发生;
在学习态度方面,我要多记笔记,学习一个知识就要把它彻底弄懂,不留盲点。
这样自己的编程能力和学习能力才能进步。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用 实现 简易 地鼠 游戏