小游戏:2048
来源:互联网 发布:电脑桌面备忘提醒软件 编辑:程序博客网 时间:2024/05/22 05:17
刚刚写了一个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
第一次写博客,写的不好请海涵
- 2048小游戏
- 2048小游戏
- [小游戏]2048
- 2048小游戏
- 2048小游戏
- 2048小游戏
- 小游戏:2048
- 2048小游戏
- 小游戏2048
- 2048小游戏
- 2048小游戏
- 2048小游戏
- 2048小游戏
- 2048小游戏
- 2048 小游戏
- 2048小游戏
- 网页小游戏之2048
- 2048的小游戏
- 内部类
- C语言函数与递归四
- 通过 LoaderManager + CursorLoader加载通讯录中所有人
- 什么是中间件
- 省选拔赛总结——有收获也有遗憾
- 小游戏:2048
- 设计模式(13)之组合模式
- C语言函数与递归四
- LeetCode 292. Nim Game C语言
- Unity基础知识结构总结
- hdu2614 Beat BFS or DFS
- Ignatius and the Princess IV
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 . candy
- Python学习笔记10