如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。
不过问题又来了,游戏总要结束,那怎么判断游戏是否结束或者游戏进入下一关呢
我们在删除待删除队列的时候(见上一节),不妨加入一个函数,来确定删除完以后,这个游戏是否还能够进行下去
bool StarMatrix::isEnded(){
bool bRet = true;
for(int i=0;i<ROW_NUM;i++){
for(int j=0;j<COL_NUM;j++){
if(stars[i][j] == nullptr)
continue;
int curColor = stars[i][j]->getColor();
//上
if(i-1>=0 && stars[i-1][j]!=nullptr && stars[i-1][j]->getColor() == curColor)
return false;
//下
if(i+1<ROW_NUM && stars[i+1][j]!=nullptr && stars[i+1][j]->getColor() == curColor)
return false;
//左
if(j-1>=0 && stars[i][j-1]!=nullptr && stars[i][j-1]->getColor() == curColor)
return false;
//右
if(j+1<COL_NUM && stars[i][j+1]!=nullptr && stars[i][j+1]->getColor() == curColor)
return false;
}
}
return bRet;
}
判断是否结束的思路很简单,对于StarMatrix里面的二维Star*数组的每一个星星,如果上下左右

本文介绍如何在cocos2dx 3.2开发的消灭星星游戏中实现结束判断和数据管理。通过在删除星星的过程中添加函数,检查游戏是否能继续,同时创建一个数据管理类来存储分数、关卡和最高分等信息,确保全局数据的一致性。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



