예제 #1
0
bool GameBox::check()
{
    checkWith(OrientationHori);
    checkWith(OrientationVert);
    
	if (readyToRemoveTiles->count() == 0)
		return false;
	int count = readyToRemoveTiles->count();
	for (int i=0; i < count; i++)
    {
        GameTile* tile = (GameTile*)readyToRemoveTiles->objectAtIndex(i);
        tile->value = 0;
		if (tile->sprite)
        {
            tile->sprite->runAction(CCSequence::create(CCScaleTo::create(0.3f, 0.0f),
                                                       CCCallFuncN::create(this, callfuncN_selector(GameBox::removeSprite)),
                                                       NULL));
		}
	}
    
    readyToRemoveTiles->removeAllObjects();
    int maxCount = this->repair();
    
    layer->runAction(CCSequence::create(CCDelayTime::create(kMoveTileTime * maxCount + 0.03f),
                                        CCCallFunc::create(this, callfunc_selector(GameBox::afterAllMoveDone)),
                                        NULL));
	return true;
}
예제 #2
0
bool GameBox::check()
{
   
    checkWith(OrientationHori);
    checkWith(OrientationVert);
     printf("readyToRemoveTiles first %d \n" , readyToRemoveTiles->count());
    
	if (readyToRemoveTiles->count() == 0)
		return false;
	int count = readyToRemoveTiles->count();
    if (count > 0) {
        ((MCoinsGameScene*)layer)->eatPoint(count);
    }
	for (int i=0; i < count; i++)
    {
        GameTile* tile = (GameTile*)readyToRemoveTiles->objectAtIndex(i);
        tile->value = 0;
		if (tile->sprite != NULL)
        {
           CCFiniteTimeAction* action = CCSequence::create(CCScaleTo::create(0.3f, 0.0f),
                               CCCallFuncN::create(this, callfuncN_selector(GameBox::removeSprite)),
                               NULL);
            tile->sprite->runAction(action);
		}
        
	}
    
    readyToRemoveTiles->removeAllObjects();
    int maxCount = this->repair();
    readyToRemoveTiles->count();
    printf("readyToRemoveTiles %d \n" , readyToRemoveTiles->count());
    if (layer!= NULL) {
        layer->runAction(CCSequence::create(CCDelayTime::create(kMoveTileTime * maxCount + 0.03f),
                                            CCCallFunc::create(this, callfunc_selector(GameBox::afterAllMoveDone)),
                                            NULL));
    }
  
	return true;
}