关闭

简单匹配游戏的制作

标签: android游戏eclipse
87人阅读 评论(0) 收藏 举报
分类:

刚接触安卓时写下的一个匹配小游戏,只要有初步的安卓的基础就可以实现。(所谓的初步基础:即了解开发环境eclipse的使用,

了解安卓项目下的目录结构,理解安卓的Activity的生命周期,会拖拉界面和基本的布局,能对控件进行事件监听等等)
友情提示:本篇针对刚刚接触安卓的童鞋,大牛可直接忽视。
废话不多说,直接说正题:


游戏玩法

点击相应的牌,即可实现翻转的效果,点击到两张相同的牌即可实现消除,一直到所有图片都被消除,游戏即通关。
游戏较简单就只有2个界面,一个主菜单界面一个游戏界面,如下所示:
这里写图片描述
这里写图片描述

主要实现逻辑

翻牌的效果实现:利用一个xml文件,配置一个图片状态的资源,在界面中拉一个ImageView,资源引用为刚刚创建的xml文件,即

可实现点击就翻牌的效果,由于这个xml文件相当于一个图片资源,所以要在资源文件夹中的相应的图片资源中建立xml,因为做的是点击翻牌的效果,选择selector元素类型,如下图所示:
这里写图片描述
内容为:
这里写图片描述
设置不同状态时的图片内容,state_pressed值为true表示点击时(牌的正面),为false表示无点击时(松开时,牌的背面图片)
之后根据图片的数量建立其/2的图片状态文件(即上述的xml文件),拉出同数量的图片个数的ImageView,相应的按钮等,布局要调整好。

为了能够打乱顺序,建立一个图片状态资源(引用的是上述建立的xml)的数组,
建立资源数组:
这里写图片描述
获取所有相应的控件,给每个ImageView都设置事件监听:
这里写图片描述
img1.setImageDrawable为给每个ImageView资源

然后需定义一个整型的成员变量touchTimes(即点击图片次数),分别根据点击次数奇偶来进行判断,初值为0在onCreate记得赋值,即偶数次时需获得所触摸图片的资源,奇数次时判断是否匹配,每次有点击都需touchTimes++。(增加点击次数)
另外两个方法解释:
gettouchR();用来获取所触摸的ImageView和资源ID,代码如下:
这里写图片描述
vId为获取到的ImageView控件,rId为整型变量,用来存储其点击的图片资源,两个均为定义的成员变量。

judgesame();判断两张图片是否匹配,与偶数次保存的图片资源进行比较,若相同,则调整图片资源透明度为0(消失效果),并设置两个ImageView都为不可点击。(怎么会有两个?因为另一个为作为成员变量的vId在偶数次中赋值保存,gettouchR中方法获取到的。设置不可点击是因为这样就不会再相应监听的点击事件而出现图片又再次出现的bug.)并做了游戏通关的判断,用匹配成功的次数,也是定义一个整形成员变量success,每次匹配成功自增,当完成为所要求的配对次数或其倍数时通关。(在这里还做了匹配成功和失败的相应音效即成功的音乐)
这里写图片描述

再写一个重置游戏的方法,里面调用了打乱顺序的方法,并要恢复ImageView的透明度,使其显示,并把按钮恢复成可以点击的状态,这样游戏的基本逻辑也就全部完成。

程序源码下载

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:94次
    • 积分:10
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档
    阅读排行
    评论排行