- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Android----snake源码分析
代码结构分析:
Snake :主游戏窗口
SnakeView:游戏视图类,是实现游戏的主体类
TileView:一个处理图片或其它
Coordinate:这是一个包括两个参数,用于记录X轴和Y轴简单类,其中包括一个比拟函数.
RefshHandler:用于更新视图
Snake
这个类是游戏的主游戏窗口,是框架容器。
游戏的开始:oncreate此外的亮点是:setContentView(R.layout.snake_layout);设置窗口的布局文件,这里Android123给大家说明的是,这里的snake_layout使用了自定义资源标签的方式,大家注意学习:这里我们可以看到来自SnakeView这个派生类的名称,由于Android内部的R.资源不包含SnakeView类,所以我们必须写清楚Package,比方com.exmple.android.snake.SnakeView然后和其他控件使用一样,都是一个id然后宽度、高度、以及自定义的标签tileSize〔尾巴长度〕,如下:
android:id=@+id/snake
android:layout_width=fill_parent
android:layout_height=fill_parent
tileSize=12
/
onPause:关于这点,大家可以参考下在我blog中关于active生命周期
在玩游戏过程中,如果有来电或是其它事件中断,这时应该把当前状态保存。以便返回时,还可以继续玩游戏。这就使用onSaveInstanceState实现保存当前状态。
TileView
注:此局部解析来自:Android例如程序Snake贪食蛇代码分析(三)
TileView,从名称上不难看出这是一个方砖类,就是生成一个方块。TileView使用了Android平台的显示基类View,View类是直接从java.lang.Object派生出来的,是各种控件比方TextView、EditView的基类,当然包括我们的窗口Activity类,这些在SDK文档中都说的比拟清楚。
??这里定义了5个int型全局的变量,分别是方砖的数量mTileSize;方砖水平x防线的数量mXTileCount;以及竖直y方向上的方砖数量mYTileCount,下面是一个相对偏移位置mXOffset和mYOffset;这里android123主让要大家了解如何自定义View在Android开发中,在一个View类中主要是重写onSizeChanged方法来控制改变局部,以及onDraw实现画布的修改,实现的简写如下:
@Override
??protectedvoidonSizeChanged(intw,inth,intoldw,intoldh){}
@Override
??publicvoidonDraw(Canvascanvas){super.onDraw(canvas);}
??我们自定义的TileView类需要自己添加一个构造方法,根据需要,我们还重载了一种包含样式的方法,这里大家可以多看下Gallery控件的实现,就好理解了,下面是根本框架。
publicTileView(Contextcontext,AttributeSetattrs,intdefStyle){super(context,attrs,defStyle);}
publicTileView(Contextcontext,AttributeSetattrs){super(context,attrs);}
??在贪食蛇游戏中我们知道Snake是移动的,所以参加了一个去除显示的clearTiles方法,通过一个二维数组保存一个gird网格型的运动轨迹,下一次我们将会讲解android贪食蛇的游戏逻辑和完整的关联拼接实现。
SnakeView
在这个类中实现的游戏的实体,从游戏需求的角色,这个游戏包括了如下方面:
随机产生小苹果,apples这里是复数,当然是是大于1个苹果,所以代码中产生了两个苹果。
游戏状态管理
画蛇,view的更新
吃掉苹果后小蛇状态的变化
画围墙
如果实现吃掉苹果小蛇速度变快?
关键是:mMoveDelay这个变量,以下是涉及到这个变量的函数,
每次吃掉苹果后,就会updateSnake一下,里面就把时间处理了:mMoveDelay*=0.9;
小蛇其实就是一个数组,google的代码就是好注释写的清楚:
/**
*mSnakeTrail:alistofCoordinatesthatmakeupthesnakesbody
*mAppleList:th
您可能关注的文档
- 电子商务基础教案纸模板.doc
- 电子信息产业基金投标文件资料.doc
- 京东商城网页装修设计.ppt
- 人民版-必修二-专题三-社会主义建设在探索中曲折发展.ppt
- 直线与角的复习.doc
- 石材外贸入门知识.docx
- 电力系统基础试题-浙江.doc
- 知名培训机构语文六年级下学期期末预测卷(五).docx
- 生物工业下游技术——PPT后问题.doc
- 人教版小学三年级数学上册第一单元《时、分、秒》测试卷01.ppt
- 第5课 控制系统的三个环节(教学设计)2023-2024学年五年级下册信息科技浙教版.docx
- 2024-2025学年高中历史必修三北师大版教学设计合集.docx
- 2024-2025学年初中音乐九年级下册苏少版(2024)教学设计合集.docx
- 2024-2025学年初中信息技术(信息科技)七年级上册川教版(2019)教学设计合集.docx
- 2024-2025学年高中地理必修二鲁教版教学设计合集.docx
- 【新课标】Unit 2 What time is it整体单元教学设计.docx
- 2024-2025学年初中信息技术(信息科技)八年级上册滇人版(2016)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)四年级上册西师大版教学设计合集.docx
- 2024-2025学年高中地理选择性必修2中图中华地图版教学设计合集.docx
- 2024-2025学年初中信息技术(信息科技)八年级上册湘电子版(2019)教学设计合集.docx
文档评论(0)