欢迎来到天天文库
浏览记录
ID:43605362
大小:462.82 KB
页数:11页
时间:2019-10-11
《【精品】贪吃蛇源码分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Android—snake源代码分析代码结构分析SnakeSnakeViewTileViewCoordinate主游戏窗口游戏视图类,是实现游戏的主体类一个处理图片或其它这是一个包括两个参数,用于记录X轴和Y轴简单类,其中包括一个比较函数.RefshHandler:JIJ于更新视图Snake这个类是游戏的主游戏窗口,是框架容器,-[jjSnake.java日••❻Snakeii••“dSICICLE_KEY□mSnakeViewdonCreatebundle)onPause0Q,onSavelnstanceSebundle)1.游戏的开始:oncreate此外的
2、亮点是:setContentView(R.layout.snake_layout);设置窗口的布局文件,这里Androidl23给人家说明的是,这里的snake_layout使用了H定义资源标签的方式,人家注意学习:这里我们可以看到来SnakeView这个派生类的名称,由于Android内部的R.资源不包含SnakeView类,所以我们必须写清处Package,比如com.exmple.android.snake.SnakeView然后和其他控件使用一样,都是一个id然后宽度、高度、以及自定义的标签tileSize(尾巴长度),如下:3、ndroid.snake.SnakeViewandroid:id=n0+id/snake"android:layout_width=fill_parent"android:layout_height="fill_parent"ti丄eSize="22"/>2.onPause:关于这点,人家可以参考下在我blog中关于active生命周期hMp:〃xusaomaiss.iavaeye.com/acimin/blogs/379826在玩游戏过程中,如果有来电或是其它爭件中断,这时应该把当前状态保存。以便返回时,还可以继续玩游戏。这就使用onSavelnstanceS4、tate实现保存当前状态。TileView注:此部分解析来自:Android示例程序Snmke贪食蛇代码分析(二)TileView,从名称上不难看出这是一个方砖类,就是生成一个方块。TileView使用了Android'卜台的显示基类View,View类是直接从java.lang.Object派生出来的,是各种控件比如TextviewsEditView的基类,当然包括我们的窗IIActivity类,这些在SDK文档中都说的比较清楚。这里泄义了5个int型全局的变屋,分别是方砖的数MmTileSize;方砖水平x防线的数mXTileCount;以及竖玄y方向上的方5、砖数量mYTileCount,下HU是一个和对偏移位置mXOffset和mYOffset;这里androidl23主让要大家了解如何自定义View在Android廿发中,在一个View类中主要是重写onSizeChanged方法來控制改变部分,以及onDraw实现闹布的修改,实现的简写如下:^OverrideprotectedvoidonSizeChanged(intw,inth,intoldw,intoldh){}(^Override我们还重载了一种包含下而是基本框架。intdefStyle)publievoidonDraw(Canvascanvas){sup6、er.onDraw(canvas);}{super(context,我们自定义的Tileview类需要HC添加一个构造方法,根据需要,样式的方法,这里大家可以多看下Gellery控件的实现,就好理解了,publicTileView(Contextcontext,AttributeSetattrs,{super(contextzattrs,defStyle);}publicTileView(Contextcontext,AttributeSetattrs)trs);}在贪食蛇游戏中我们知道Snake是移动的,所以加入了一个清除显示的clearTiles方法,通过一7、个二维数组保存一个gird网格型的运动轨迹,下一次我们将会讲解android贪食蛇的游戏逻辑和完整的关联拼接实现。SnakeView在这个类中实现的游戏的实体,从游戏需求的角色,这个游戏包括了如下方面:1.随机产生小苹果,apples这里是复数,当然是是人于1个苹果,所以代码屮产生了两个苹果。2.游戏状态管理3.画蛇,view的更新4.吃掉苹果后小蛇状态的变化5.画围墙如果实现吃掉苹果小蛇速度变快?关键是:mMoveDelay这个变量,以下是涉及到这个变量的函数,0JJ-com.example.android.snake一src一Snake二QSnakeView8、回iriitNewGam
3、ndroid.snake.SnakeViewandroid:id=n0+id/snake"android:layout_width=fill_parent"android:layout_height="fill_parent"ti丄eSize="22"/>2.onPause:关于这点,人家可以参考下在我blog中关于active生命周期hMp:〃xusaomaiss.iavaeye.com/acimin/blogs/379826在玩游戏过程中,如果有来电或是其它爭件中断,这时应该把当前状态保存。以便返回时,还可以继续玩游戏。这就使用onSavelnstanceS
4、tate实现保存当前状态。TileView注:此部分解析来自:Android示例程序Snmke贪食蛇代码分析(二)TileView,从名称上不难看出这是一个方砖类,就是生成一个方块。TileView使用了Android'卜台的显示基类View,View类是直接从java.lang.Object派生出来的,是各种控件比如TextviewsEditView的基类,当然包括我们的窗IIActivity类,这些在SDK文档中都说的比较清楚。这里泄义了5个int型全局的变屋,分别是方砖的数MmTileSize;方砖水平x防线的数mXTileCount;以及竖玄y方向上的方
5、砖数量mYTileCount,下HU是一个和对偏移位置mXOffset和mYOffset;这里androidl23主让要大家了解如何自定义View在Android廿发中,在一个View类中主要是重写onSizeChanged方法來控制改变部分,以及onDraw实现闹布的修改,实现的简写如下:^OverrideprotectedvoidonSizeChanged(intw,inth,intoldw,intoldh){}(^Override我们还重载了一种包含下而是基本框架。intdefStyle)publievoidonDraw(Canvascanvas){sup
6、er.onDraw(canvas);}{super(context,我们自定义的Tileview类需要HC添加一个构造方法,根据需要,样式的方法,这里大家可以多看下Gellery控件的实现,就好理解了,publicTileView(Contextcontext,AttributeSetattrs,{super(contextzattrs,defStyle);}publicTileView(Contextcontext,AttributeSetattrs)trs);}在贪食蛇游戏中我们知道Snake是移动的,所以加入了一个清除显示的clearTiles方法,通过一
7、个二维数组保存一个gird网格型的运动轨迹,下一次我们将会讲解android贪食蛇的游戏逻辑和完整的关联拼接实现。SnakeView在这个类中实现的游戏的实体,从游戏需求的角色,这个游戏包括了如下方面:1.随机产生小苹果,apples这里是复数,当然是是人于1个苹果,所以代码屮产生了两个苹果。2.游戏状态管理3.画蛇,view的更新4.吃掉苹果后小蛇状态的变化5.画围墙如果实现吃掉苹果小蛇速度变快?关键是:mMoveDelay这个变量,以下是涉及到这个变量的函数,0JJ-com.example.android.snake一src一Snake二QSnakeView
8、回iriitNewGam
此文档下载收益归作者所有