小游戏:2048
2016-04-24 19:42
381 查看
刚刚写了一个2048,和大家说说,也算是自己的一个笔记吧,
首先我们先来看看效果图吧,最上面的score和最下面的重新开始太简单了,就是两个textview和一个button,我就不说了,我就只说中间部分了
中间很明显是一个网格布局,我们新建一个GameView类用来创建这个布局,setBackgroundColor设置背景颜色,setColumnCount设置网格数量
网格设计好之后要添加到xml文件中,layout_height=odp一般是和layout_weight一起使用,用来设置控件的比例
布局基本完成了,网格里面的数字也就是一个textview,当然,玩过的人都知道游戏中的2和4出现的比例是不一样的,所以我们需要用cardsmap[p.x][p.y].setNum(Math.random() > 0.1 ? 2 : 4);来设置2和4出现的比例,至于对上下左右滑动的判定,可以用setOnTouchListener获得点击前的坐标和点击后的坐标,从而判断出滑动方向。
接下来是最重要也是最复杂的逻辑,
这是左滑的代码,通过一个二重循环遍历所有位置,然后x1=x=1判断第二列第三列和第四列的值,如果有值就进行操作,没有值,那无论怎么划第一列都没有变化,所有我们不需要进行操作,接下来又可以分为2种情况,第一种第一列没有值,那么第二列与第一列的值进行交换,x--,重新遍历,如果第二列的值等于第一列,那么第一列的值乘2,第二列为0,其他的上下右类似,我就不写了。
最后还有成绩的显示和重新开始的按钮,这个比较简单我就不贴代码了,大致说一下,类似于单例模式,既然textview是私有的,那我们就可以创建一个借口来使用textview,在GameView中每次数字叠加就调用一次借口,按钮类似。
这个只是大致说了一下,具体实现下面的源码有,
源码下载地址:http://download.csdn.net/detail/qq794383252/9501236
第一次写博客,写的不好请海涵
首先我们先来看看效果图吧,最上面的score和最下面的重新开始太简单了,就是两个textview和一个button,我就不说了,我就只说中间部分了
中间很明显是一个网格布局,我们新建一个GameView类用来创建这个布局,setBackgroundColor设置背景颜色,setColumnCount设置网格数量
网格设计好之后要添加到xml文件中,layout_height=odp一般是和layout_weight一起使用,用来设置控件的比例
布局基本完成了,网格里面的数字也就是一个textview,当然,玩过的人都知道游戏中的2和4出现的比例是不一样的,所以我们需要用cardsmap[p.x][p.y].setNum(Math.random() > 0.1 ? 2 : 4);来设置2和4出现的比例,至于对上下左右滑动的判定,可以用setOnTouchListener获得点击前的坐标和点击后的坐标,从而判断出滑动方向。
接下来是最重要也是最复杂的逻辑,
这是左滑的代码,通过一个二重循环遍历所有位置,然后x1=x=1判断第二列第三列和第四列的值,如果有值就进行操作,没有值,那无论怎么划第一列都没有变化,所有我们不需要进行操作,接下来又可以分为2种情况,第一种第一列没有值,那么第二列与第一列的值进行交换,x--,重新遍历,如果第二列的值等于第一列,那么第一列的值乘2,第二列为0,其他的上下右类似,我就不写了。
最后还有成绩的显示和重新开始的按钮,这个比较简单我就不贴代码了,大致说一下,类似于单例模式,既然textview是私有的,那我们就可以创建一个借口来使用textview,在GameView中每次数字叠加就调用一次借口,按钮类似。
这个只是大致说了一下,具体实现下面的源码有,
源码下载地址:http://download.csdn.net/detail/qq794383252/9501236
第一次写博客,写的不好请海涵
相关文章推荐
- 我是运营,我没有假期
- 每个 Linux 游戏玩家都绝不想要的恼人体验
- 在 Fedora 上使用 Steam play 和 Proton 来玩 Windows 游戏
- Steam 让我们在 Linux 上玩 Windows 的游戏更加容易
- 如何使用 Steam Play 在 Linux 上玩仅限 Windows 的游戏
- 新一代iPad适配应用之游戏篇
- VB实现的《QQ美女找茬游戏》作弊器实例
- flex 控件的重要属性
- Delphi控件ListView的属性及使用方法详解
- web下载的ActiveX控件自动更新
- WinForm实现按名称递归查找控件的方法
- C#中父窗口和子窗口之间控件互操作实例
- C#实现洗牌游戏实例
- C#实现的算24点游戏算法实例分析
- Android编程之Button控件用法实例分析
- Android控件之CheckBox、RadioButton用法实例分析
- 在Android开发中使用自定义组合控件的例子
- C#实现简单的井字游戏实例
- C++编写简单的打靶游戏
- C++实现基于控制台界面的吃豆子游戏