最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

利用cocos2d-x实现CandyCrushSaga消除功能

来源:懂视网 责编:小采 时间:2020-11-09 07:19:51
文档

利用cocos2d-x实现CandyCrushSaga消除功能

利用cocos2d-x实现CandyCrushSaga消除功能:昨天没事写了个三消玩玩。已经实现的功能:1、连续3个及以上横竖消除方块;2、连续4个及以上生成一个道具;(只做了消除一行或一列的条纹道具)其他功能就没有实现了,下面我简单说下思路,希望给需要的朋友一点帮助。GameScene:游戏场景GameBox:游戏视
推荐度:
导读利用cocos2d-x实现CandyCrushSaga消除功能:昨天没事写了个三消玩玩。已经实现的功能:1、连续3个及以上横竖消除方块;2、连续4个及以上生成一个道具;(只做了消除一行或一列的条纹道具)其他功能就没有实现了,下面我简单说下思路,希望给需要的朋友一点帮助。GameScene:游戏场景GameBox:游戏视

1.png

昨天没事写了个三消玩玩。已经实现的功能:
1、连续3个及以上横竖消除方块;
2、连续4个及以上生成一个道具;(只做了消除一行或一列的条纹道具)

其他功能就没有实现了,下面我简单说下思路,希望给需要的朋友一点帮助。

2.png

GameScene:游戏场景
GameBox:游戏视图View。负责管理GameTitle
GameTile:可消除的方块
GameDefine:一些游戏的配置。

一、GameScene
1、首先GameScene初始化的时候,创建GameBox,并且锁住GameBox,阻止玩家操作界面上的方块。
2、当onEnterTransitionDidFinish之后,让GameBox check是否有消除对象。
3、GameScene的touch方法只负责GameTile的交换。每次交换之后,让GameBox check是否有消除对象。

二、GameTile
这里要说明下,GameTile是放置在GameBox上的每个方块,玩家交换GameTile实际上是交换的GameTile内部的sprite,GameTile本身不移动位置。

class GameTile: public Node
 
{
public:
 int x;
 int y;
 int value; // 1 - 6 6种方块
 int comboValue; // 1:横向消除道具, 2:竖向消除道具
 Sprite* sprite; // 方块的显示sprite,
 
 
public:
 GameTile(int ax,int ay);
 ~GameTile();
 bool nearTile(GameTile* other tile); // 是否相连
 void trade(GameTile* other tile); //交换gameTile,实际上是交换的sprite
 void changeComboTile(int orient); //变身成combo道具
 Point pixPosition(); //返回x,y对应的像素坐标,用于交换sprite
 void refreshDebugInfo();
};

三、GameBox
1、首先生成所有的GameTitle,新生成的GameTile没有sprite。
2、GameScene onEnterTransitionDidFinish之后会调用GameBox check方法,会发现所有GameTitle为空,所以开始执行填充sprite。
3、在GameScene中用户交换gameTile之后,也会触发GameBox check,GameBox check检查是否有可消除对象,没有的话则通知GameScene还原交换的gameTile,有消除对象,则GameBox 消除对应的sprite,并填充新的sprite并执行check。

四、最后提供源代码:
代码是基于cocos2d-x-3.0alpha0版本的,请下载后放在projects目录运行。

3.png

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

利用cocos2d-x实现CandyCrushSaga消除功能

利用cocos2d-x实现CandyCrushSaga消除功能:昨天没事写了个三消玩玩。已经实现的功能:1、连续3个及以上横竖消除方块;2、连续4个及以上生成一个道具;(只做了消除一行或一列的条纹道具)其他功能就没有实现了,下面我简单说下思路,希望给需要的朋友一点帮助。GameScene:游戏场景GameBox:游戏视
推荐度:
标签: 利用 消除 实现
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top