cocos2dx 2048与小小打飞机游戏实现

数字媒体技术专业
实验报告
源代码在gitee上面,环境是cocos2dx3.17,仅作学习交流分享
别直接抄我报告,这点东西还是自己写写
git链接:https://gitee.com/xuhaya/plane2048.git
一、实验目的
1,实现2048主要游戏功能
2,回顾之前学习的有关知识
二、实验内容
实现游戏内卡片的移动,消除,生成,积分四个主要功能,同时加入对游戏条件结束的判断和重新开始游戏的按钮。
三、实验步骤
1,理解游戏逻辑
(1)游戏开始时棋盘上会出现随机数字,数量为2,且出现的数字仅可能为2或4
在这里插入图片描述

	(2)玩家鼠标的移动仅识别上下左右,斜着的移动并不会被响应,相同的数字会被合并,但会连续合并
	(3)每次合并新生成的所有新数字相加所得数字,及为本次合并所得分数。
	(4)出现合并后,会在没有数字处随机生成数字(仅为2或4)
	(5)棋盘被数字填满并且无法进行合并,失败,游戏结束
	(6)棋盘上出现2048,胜利,游戏结束

2,上下左右手势的识别
(1)首先注册鼠标的监听器
(2)获取点击属性
(3)判断移动
3,卡片类的创建
卡片类的创建主要是因为对卡片自身的一些属性进行设置
(1)卡片的初始化
在初始化函数里用到了autorelease,是为了主动释放内存空间,将上一次生成的卡片释放,并在初始化后CC_SAFE_DELETE安全删除卡片信息,否则会造成内存泄漏问题。
合并后更新数字
(2)对卡片的数字和背景色进行设置
这里是通过判断数字的大小来设置字体大小和颜色
(3)初始化函数具体内容
4,卡片的添加
这一步主要是把卡片添加到场景里去
设置背景色
由双循环创建44的场景
5,主要逻辑实现
这一部分实现的是在移动时触发的四个函数
在上一步里我们已经把卡片信息存放在一个4
4数组里
1)设置两重循环,取出卡片信息
2)设置第三重循环,在手势方向上进行检测,判断卡片合并与否
3)如果当前位置不为空,手势方向上遇到空,则
4)手势方向上不为空
5)整体代码展示
6,卡片的随机生成
定义i,j为RANDOM_0_1()生成随机数0或者1,乘以4以后,则i,j范围设置为0-4,即0到3的随机数。
生成卡片之前需要if判断cardArr[i][j]->getNumber()>0,则自动生成卡片数字(没有就生成),否则随机生成2或4.
因为在2048中每次生成的有两个数字,即调用两次自动生成随机卡片。
7,结束判断
通过来判断游戏是否结束,主要判断函数如下,一共五种游戏结束条件
游戏结束界面的设置
8,分数及其他
我们在游戏的顶端创建与分数有关的东西,在之前的doup等函数里,加入分数函数
9,展示
四:实验心得:
作为临近期末一次综合性作业,这次的作业是对前面知识点的一次很好的回顾与复习。同时也让我掌握了小游戏的开发,最重要的是逻辑上要清晰。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值