您的位置:首页 > 其它

移动过程及其数据存储带来的冲突解决办法 及其 精灵下落填充过程

2015-04-26 10:47 309 查看
<1>

1,问题描述:当还没runAction完毕,数据就已经存储了下来。

rockSp->runAction(MoveTo::create(time, endPosition));
m_spLayer->addChild(rockSp, 4);
m_rockMatrix[row * m_width + col] = rockSp;


2,解决方案:

if (m_isAnimationing) {
m_isAnimationing = false;

for (int i = 0; i < m_height * m_width; i++)
{
AnimationSprite *sp = m_animalMatrix[i];
if (sp) {
if (sp->getNumberOfRunningActions() > 0) {
m_isAnimationing = true;
break;
}
}
}
}
关键之处就在于此:getNumberOfRunningActions,如果它的数来那个大于0,那么就说明仍然处于消除的状态中。当不处于消除状态中时,才进行消除。

<2>思考精灵填充过程

1,当第一次填充时,每次都产生在棋盘的最上方.
2,后面的填充:第一步先把当前棋盘中存在的精灵下落;第二步根据当前棋盘状态产生新的精灵,然后统计本列需要填充产生的个数,然后将产生的新的精灵去填充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐