Cocos2d-x 3.1代码跟资源文件下载地址 http://yunpan.cn/ccH7rrMpkPiz2 (提取码:9ab6)
2048这游戏主要需要实现以下几种功能:
1.通过滑动,对图块进行移动
2.滑动结束后在空白的地方绘制一个新的图块
3.显示最高分,当前分
4.失败的判定
这里最核心的就是第一个功能的实现。这里要先明确2048滑动的原理。
背景是一个4*4的正方形,这里左下角的格子为第0行第0列,右上角的为第3行,第3列
如
2 | |||
2 | 2 | 2 | |
2 | |||
2 | 2 |
向上滑动后
第一步是 第2行的全部向上移动变成了
4 | 2 | 2 | |
2 | |||
2 | 2 |
第二步是第1行的全部向上移动变成了
4 | 2 | 2 | |
2 | |||
2 | 2 |
第三步是第0行的全部向上移动变成了
4 | 2 | 2 | |
4 | |||
2 |
滑动到什么位置
向上滑动 会从第2行的开始计算,因为第3行的已经在最上面了,不会在移动了
先读取第2行第0列 的值,如果是0(表示空)就跳过 第2行第0列......开始判断第2行第1列.
否则 先把第3行第0列的 设为移动目标区域
第2行第0列的开始移动的时候会判断 他的移动目标区域的值 是否跟它的值一样 一样的话 第2行第0列的移动到移动目标区域( 第3行第0列),然后第3行第0列的值变为原来的2倍
如果不一样的话 有2种情况 第一种就是为0,这样的话 第2行第0列的移动到 移动目标区域(第3行第0列),然后第3行第0列的值变为第2行第0列的值
第二种就是非0的图块,这样的话 就判断这个格子跟移动目标区域的格子中间是否有格子
没有就不移动,把这个格子设为本列下一个移动对象的 移动目标区域
有就移动到 移动目标区域 的下一行的格子 然后把这个格子设为本列下一个移动对象的 移动目标区域
4*4的格子,可以定义一个2维数组,使每个格子都有一个值,格子的值就是其上面显示的图块的值,空格子的值设为0,这样每次移动结束后,读取这个二维数组的值,在里面随机取一个值为0的格子,使其的值随机为2或4
3.显示最高分,当前分
最高分,当前分,显示就直接用LabelTTF显示,然后用UserDefault类,存一个最高分数据
每次移动结束后,绘制一个新的图块,然后判断是否还有空格子,没有的话,就继续判断每个格子与周围4个格子(上,右,下,左)的值是否一样,一样的话就表示还可以通过移动合并掉,不一样的话所以,已经不能合并了,即游戏失败了
总结以上是内存溢出为你收集整理的Cocos2dx------2048游戏全部内容,希望文章能够帮你解决Cocos2dx------2048游戏所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)