(4)启动SDK Manager.exe,如图2所示。
图2 SDK Manager界面
点击install 2 packages 开始下载安装,需要时间较长。
4.2游戏单个功能的具体实现
针对第三章的系统需求分析,画出如图3的程序流程图。在没有符合的图片或者很难找到符合的时候,游戏的内部有可以帮助玩家或者重新洗牌。
图3 程序流程图
4.2.1游戏的初始化
游戏的初始化包括对图片的加载类型的初始化和网格的初始化。
(1)对游戏的图片加载类型的初始化,首先要对屏幕的大小进行获取,绑定每一张图片。这需要对图片进行载入,载入的时候分配给每一个图片一个ID。获取屏幕大小的函数为private void calIconSize(){ ((Activity) this.getContext()).getWindowManager() } 而载入一张图片通过此行代码loadBitmaps(1, r.getDrawable(R.drawable.fruit_01));分配ID需要loadBitmap函数。
(2)对网格的初始化,通过initGrid函数来完成此功能。首先要new出一个对象,在四周都初始化为0不设置图片。如图4所示。
图4 直观图
在网格初始化中要保证以下两点,游戏才能顺利进行。第一,外围图片不参与游戏的相连,故ID数字都为0。第二,中间的ID数字都为随机数字,但是要保证图片都能连接,故要成对出现的。
4.2.2图标变大与消失
这两个游戏功能通过onDraw函数来完成。
当有符合条件的两张图片,在被选时有变大(5像素)的效果,这样有用户知道自己第一个选择的是什么图片,有利于选择第二个图片,提高游戏的效率。
当有符合条件的两张图,被选中绘制路线,这个绘制出来的路线可以感受到游戏的真实性。符合条件的两张图片连接后会消失,而后其位置ID数字变为0。4.2.3音乐控制
为了提高在游戏中娱乐性,在成功完成,失败结束的时候都有音乐曲调的播放。此功能是要initSound函数来完成。通过private List<Point> path = new ArrayList<Point>()获取文件路径;在游戏中有如图5音乐。
图5 音乐列表
4.2.4帮助按钮,重排按钮
(1)在游戏过程中,有帮助玩家自动清除图片的功能按钮,但只能帮助三次,实现算法见图6。
图6 帮助实现按钮
(2)在游戏过程中,若很难或无法查找符合条件的图片,可以使用重排按钮,同样,此功能只能使用三次。功能实现和帮助按钮相似(若重排次数用完,有错误的声音提示)。
4.2.5图片的判断和连接
当用户触碰游戏界面时,事件监听器获取的是该接触点在游戏界面上的X、Y坐标,但程序需要获取用户触碰的到底是哪个方块,因此程序必须把界面上的X、Y坐标换算成在二文数组中的两个索引值。每一张图片的宽度、高度都是一样的,故二文数组中的索引为X、Y坐标值除以图片的高宽。
当选中的两张图片Piece是同一个,即判断为选中了同一个方块,这时返回null。如果不同,这返回false。
图片的连接有三种,分别是没转折点、一个转折点、两个转折点。没有转折点包含纵向和横向两种:如果两个图片在数组中的第二文索引值相等,那么这两个图片就位于同一行,这为没有转折点的横向连接。如果两个图片在数组中的第一文索引值相等,那么这两个图片就位于同一列,这为没有转折点的纵向连接。对于两张图片连接线上只有一个转折点的情况,首先要找到这个转折点。然后判断这个点与两个图片之间的关系,获取这个点向右(向左)、向下、向上的三个通道。对于两张图片连接线上有两个转折点的情况,同样首先要找到这两个转折点。还要通过expandX横向寻找可达的点最大横坐标范围,expandY纵向需找可达的点最大纵坐标的范围。 Android手机连连看游戏的开发与实现(4):http://www.751com.cn/jisuanji/lunwen_2359.html