- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android开发总结报告
_____扫雷小游戏
2011年1月
一、背景
扫雷是一个简单的单人游戏。游戏的目的是在没有触碰任何一个地雷的情形下清空一个雷区。扫雷不仅有Windows版本,也有其他平台的版本(包括大多数Linux的变体)。扫雷在Windows的用户中十分流行,自从Windows 3.1以来一直绑定在里面。本程序通过实现Windows扫雷的大多数功能来熟悉Android开发。
二、相关技术
1. 个性化字体,计分器使用的是LED字体,可以帮助我们如何导入外部字体在Android平台中显示。
? 2. 带图片的Toast,下面的You won in 36 seconds这个Toast使用了自定义的布局,可以显示图片和文字。
? 3. 自定义Button控件,可以看到标记是否为雷,显示附近地雷数量的按钮控件,初学者可以很容易的学习到Android开发中常用的自定义控件技术。
4. 因为游戏实时性不高,这里没有用到SurfaceView,下次Android开发网给大家提供一个将对高级些的例子。
三、程序设计
扫雷游戏最重要的部分是处理用户操作。首先等待并接受用户输入,然后恰当的处理。我相信与其我用文字来解释,不如我用图表来解释的效果更好,图表的说服力更强。整个循环用下面的流程图表示:
四、实现
1.计算时间
开发游戏的最重要的事情就是跟踪时间。Java世界里的标准方法是使用java.util.Timer或者java.util.TimerTask 保持时间。这里麻烦的地方在于我们需要创建一个新的线程,一些情况下我们并不想这样。Android有更好的解决方案。我们可以使用类 android.os.Handler实现目标。
用Handler取代Timer。可以用两种方法使用Handler,一种是给Handler传递消息并在消息收到时执行特定的操作,另一种是在Handler中调度一个Runable对象。我们在扫雷中使用第二种方法,使用Handler的好处在于它和creator线程中的thread/message队列相联系。实现handler的代码如下:
private Handler timer = new Handler();
private int secondsPassed = 0;
public void startTimer()
{
if (secondsPassed == 0)
{
timer.removeCallbacks(updateTimeElasped);
// tell timer to run call back after 1 second
timer.postDelayed(updateTimeElasped, 1000);
}
}
public void stopTimer()
{
// disable call backs
timer.removeCallbacks(updateTimeElasped);
}
// timer call back when timer is ticked
private Runnable updateTimeElasped = new Runnable()
{
public void run()
{
long currentMilliseconds = System.currentTimeMillis();
++secondsPassed;
txtTimer.setText(Integer.toString(secondsPassed));
// add notification
timer.postAtTime(this, currentMilliseconds);
// notify to call back after 1 seconds
// basically to remain in the timer loop
timer.postDelayed(updateTimeElasped, 1000);
}
};
2. 模拟左右键
Android不支持中间键的点击事件,我们使用长点击事件来模拟此功能。如果长点击事件在一个有数字的打开的砖块上发生,我们就击发相应的功能。这部分的代码如下:
blocks[row][column].setOnLongClickListener(new OnLongClickListener()
{
public boolean o
您可能关注的文档
- 1-甲基-2-吡咯烷酮MSDS.doc
- 02CCBFS系统_一级行保理岗日常操作介绍.ppt
- 3D小人数据分析系列PPT模板.ppt
- 4D-MRA系统操作培训.doc
- 5套管换热器液液热交换系数及膜系数的测定.doc
- 6KV变压器送电操作票.doc
- 07 个人空间、私密性与领地性.ppt
- 7-9年级优秀古诗文背诵推荐篇目(50篇).doc
- 7天连锁酒店建设项目方案模板.ppt
- 7天连锁酒店维修技师入职培训讲义.ppt
- 广东省潮州市2019-2020年度高一上学期政治期中考试试卷(II)卷.doc
- 初中语文七年级下册 27 《课外古诗词诵读・竹里馆》优质课公开课课件.pdf
- 初中语文七年级下册 28 《课外古诗词诵读・春夜洛城闻笛》优质课公开课课件.pdf
- 广东省潮州市2019-2020学年高一上学期政治期中考试试卷(II)卷.doc
- 初中语文七年级下册 29 《课外古诗词诵读・逢入京使》优质课公开课课件.pdf
- 广东省潮州市2019-2020学年高一上学期政治期中试卷B卷.doc
- 广东省潮州市2019-2020学年高一下学期政治开学考试试卷A卷.doc
- 初中语文七年级下册 30 《课外古诗词诵读・晚春》优质课公开课课件.pdf
- 广东省潮州市2020版高一上学期政治期中考试试卷D卷.doc
- 广东省潮州市2020年高一上学期政治期中考试试卷A卷.doc
文档评论(0)