Cocos2dx------2048游戏

前端之家收集整理的这篇文章主要介绍了Cocos2dx------2048游戏前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


Cocos2d-x 3.1代码跟资源文件下载地址 http://yunpan.cn/ccH7rrMpkPiz2 (提取码:9ab6)



2048这游戏主要需要实现以下几种功能

1.通过滑动,对图块进行移动

2.滑动结束后在空白的地方绘制一个新的图块

3.显示最高分,当前分

4.失败的判定


1.通过滑动,对图块进行移动

这里最核心的就是第一个功能的实现。这里要先明确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的图块,这样的话 就判断这个格子跟移动目标区域的格子中间是否有格子

没有就不移动,把这个格子设为本列下一个移动对象的 移动目标区域

有就移动到 移动目标区域 的下一行的格子 然后把这个格子设为本列下一个移动对象的 移动目标区域



2. 滑动结束后在空白的地方绘制一个新的图块

4*4的格子,可以定义一个2维数组,使每个格子都有一个值,格子的值就是其上面显示的图块的值,空格子的值设为0,这样每次移动结束后,读取这个二维数组的值,在里面随机取一个值为0的格子,使其的值随机为2或4

@H_404_261@
@H_404_261@
@H_404_261@

3.显示最高分,当前分

最高分,当前分,显示就直接用LabelTTF显示,然后用UserDefault类,存一个最高分数据


4.失败的判定

每次移动结束后,绘制一个新的图块,然后判断是否还有空格子,没有的话,就继续判断每个格子与周围4个格子(上,右,下,左)的值是否一样,一样的话就表示还可以通过移动合并掉,不一样的话所以,已经不能合并了,即游戏失败了

猜你在找的Cocos2d-x相关文章