示例#1
0
void MenuLayerMainMenu::allowTouches(float dt)
{
    CCDirector* pDirector = CCDirector::sharedDirector();
    pDirector->getTouchDispatcher()->setPriority(kCCMenuHandlerPriority+1, this);
    unscheduleAllSelectors();
    CCLog("TOUCHES ALLOWED AGAIN");
}
示例#2
0
void Fly::deadAction()
{
    //主机在死亡的时候会调用deadAction()方法
    
    //先停止所有动作和定时器
    stopAllActions();
    unscheduleAllSelectors();
    
    //制作主机死亡的动作
    auto pAnimation = cocos2d::Animation::create();
    auto pSpriteFrameCache = cocos2d::SpriteFrameCache::getInstance();
    for (int i = 1; i <= FLY_BLOWUP_FRAME_COUNT; ++i)
    {
        pAnimation->addSpriteFrame(pSpriteFrameCache->getSpriteFrameByName(cocos2d::StringUtils::format("hero_blowup_%d.png", i)));
    }
    pAnimation->setDelayPerUnit(0.1f);
    pAnimation->setLoops(1);
    auto pAnimate = cocos2d::Animate::create(pAnimation);
    
    //制作主机死亡动作播放完成后的处理动作
    auto pEnd = cocos2d::CallFunc::create([]()
    {
        SceneManager::getInstance()->changeScene(en_GameOverScene);
        CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic(GAME_OVER);
    });
    
    //将死亡动作和死亡处理动作串行处理
    runAction(cocos2d::Sequence::create(pAnimate, pEnd, NULL));
}
示例#3
0
void MenuPrincipal::toPlayMenu(){
  stopAllActions();
  unscheduleAllSelectors();
  removeFromParentAndCleanup(true);
  Scene* newScene = TransitionFade::create(0.7, ArcadeMenu::createScene()); 
  Director::sharedDirector()->replaceScene(newScene);
}
示例#4
0
void CCCGameScrollView::scrollToPage( int nPage )
{
	// 关闭CCScrollView中的自调整
	unscheduleAllSelectors();

	CCPoint oOffset = getContentOffset();
	// 调整位置
	CCPoint adjustPos;
	if (m_eDirection == kCCScrollViewDirectionHorizontal)
	{
		adjustPos = ccp(-m_CellSize.width * nPage, 0);
	}
	else
	{
		adjustPos = ccp(0, m_CellSize.height * nPage);
	}
	// 调整动画时间
	float adjustAnimDelay = ccpDistance(adjustPos, oOffset) / m_fAdjustSpeed;

	// 调整位置
	setContentOffsetInDuration(adjustPos, adjustAnimDelay);

	if (nPage != m_nCurPage)
	{
		m_nCurPage = nPage;
		scheduleOnce(schedule_selector(CCCGameScrollView::onScrollEnd), adjustAnimDelay);
	}
}
void BigDude::die(){
    CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("boom2.mp3");
    this->_alive = false;
    EnemyController::enemies.eraseObject(this);
    EnemyController::showCaseEnemies.pushBack(this);
    EffectManager::createExplosion(getPosition());
    Point nowPoint = this->getPosition();
    log("now X: %f Y:%f \n",nowPoint.x,nowPoint.y);
    Point targetPos = Point(nowPoint.x,nowPoint.y-200);
    log("now X: %f Y:%f \n",targetPos.x,targetPos.y);
    unscheduleAllSelectors();
    this->runAction(
                     Sequence::create(
                                      Spawn::create(
                                                    EaseSineOut::create(MoveTo::create(2, targetPos)),
                                                    EaseSineOut::create(ScaleTo::create(2,0.3)),//TODO: replace with move 3d when possible
                                                    //EaseBackOut::create(RotateBy::create(2,Vertex3F(CC_RADIANS_TO_DEGREES((nowPoint-targetPos).getAngle()),CC_RADIANS_TO_DEGREES((nowPoint-targetPos).getAngle())+45,-CC_RADIANS_TO_DEGREES((nowPoint-targetPos).getAngle())+90))),
                                                    RotateBy::create(2, Vertex3F(360+CCRANDOM_0_1()*600, 360+CCRANDOM_0_1()*600, 360+CCRANDOM_0_1()*600)),
                                                    nullptr
                                                    ),
                                      CallFunc::create(this,callfunc_selector(BigDude::fall)),
                                      nullptr
                                      ));


}
void ScrollBar::Refresh()
{
	if( this->getScaleX() == 0.0f || this->getScaleY() == 0.0f )
		FadeIn(NULL);

	unscheduleAllSelectors();
	//scheduleOnce( schedule_selector(UIFlowScrollBar::FadeOut), _fadeDelayTime );

	float offset = 0;
	switch( _type )
	{
	case VERTICAL_IN:
	case VERTICAL_OUT:
		offset = _target->getContentOffset().y;
		_nowContentSize = _target->getContentSize().height;
		break;

	case HORIZONTAL_IN:
	case HORIZONTAL_OUT:
		offset = _target->getContentOffset().x;
		_nowContentSize = _target->getContentSize().width;
		break;
	}

	this->setVisible( _nowContentSize >= _svFixSize );

	RefreshScale();
	RefreshPosition();
}
示例#7
0
void Carrot::CarrotBeHurt(Ref * pRef)
{
    SoundUtil::getInstance()->playEffect(CARROTCRASH);
	MonsterBase * pMonster = (MonsterBase *)pRef;
	iHp -= pMonster->getIAtk();
	if (iHp <= 0)
    {
        GameManager::getInstance()->setICarrotHp(0);
        auto tGameEndType = en_GameLose;
        NOTIFY->postNotification("gameEnd", reinterpret_cast<Ref*>(&tGameEndType));
        NOTIFY->removeAllObservers(this);
        return;
    }
    GameManager::getInstance()->setICarrotHp(iHp);
	Director::getInstance()->getEventDispatcher()->removeEventListenersForTarget(getSprite());
    unscheduleAllSelectors();
	_HpSprite->setSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName(StringUtils::format("BossHP%02d.png",iHp)));
	std::string HurtSpriteName;
	if (iHp == 5 || iHp == 7)
	{
		HurtSpriteName = StringUtils::format("hlb%d.png", iHp + 1);
	}
	else
	{
		HurtSpriteName = StringUtils::format("hlb%d.png", iHp);
	}
	getSprite()->stopAllActions();
	getSprite()->setSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName(HurtSpriteName));
}
示例#8
0
void ImagePicker::finished()
{
    if (ready)
    {
        unscheduleAllSelectors();
        CCSprite *result;
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
        std::string path = getImagePathJNI();
        result = CCSprite::create(path.c_str());
#endif
       
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
        result =  ObjCCalls::image();
#endif
        result->setPosition(_position);
        if (_target)
           // _target->addChild(result);
        last = result;
        working = false;
        
        if (_delegate)
            _delegate->didFinishPickingWithResult(true);
    }
   
}
示例#9
0
void ActorBase::actorLogic(){

    if (mActorData->getblood()<=0) {
        stopAllActions();
        unscheduleAllSelectors();
        isDead =true;
        StateToDead();
        return;
    }
        if (!isDead&& _target&&!startTowerFight)
        {
            if (_target-> mActorData->getblood()<=0) {
                StateToStand();
                unschedule(schedule_selector(ActorBase::fire));
                _target =NULL;
                //CC_SAFE_RELEASE_NULL(_target);
         //       scheduleOnce(schedule_selector(ActorBase::findAnotherTarget), 2.0f) ;
            }
          }
    if (!isDead&& _towerTarget&&startTowerFight)
    {
        if (_towerTarget-> getBlood()<=0) {
            ForceAttackTower = false;
            StateToStand();
            unschedule(schedule_selector(ActorBase::fire));

            _towerTarget =NULL;
            
         
        }
    }
        findAnotherTarget();
}
LHParallaxNode::~LHParallaxNode(void){
//    CCLog("LHParallaxNode dealloc");
    
    unscheduleAllSelectors();
    
    if(NULL != followedSprite)
        followedSprite->parallaxFollowingThisSprite = NULL;
    followedSprite = NULL;
    
    if(removeSpritesOnDelete)
    {
#if COCOS2D_VERSION >= 0x00020000
        CCArray* tempSprites = CCArray::create();
#else
        CCArray* tempSprites = CCArray::array();
#endif
        
        tempSprites->addObjectsFromArray(sprites);
    
        for(int i = 0; i< tempSprites->count(); ++i)
        {        
            LHParallaxPointObject* pt = (LHParallaxPointObject*)tempSprites->objectAtIndex(i);
            if(pt->ccsprite){
                ((LHSprite*)pt->ccsprite)->setParallaxNode(NULL);
                ((LHSprite*)pt->ccsprite)->removeSelf();
            }
        }
        tempSprites->removeAllObjects();
    }
    
    sprites->removeAllObjects();
    
    delete sprites;
}
void Presentation::update(float dt) {
  stopAllActions();
  unscheduleAllSelectors();
  removeFromParentAndCleanup(true);
  Scene* newScene = TransitionFade::create(0.8, MenuPrincipal::createScene()); 
  Director::sharedDirector()->replaceScene(newScene);
}
void GameOver::closeAndSave() {
  //_nickname_input->getString();
  CCLog("CERRANDO Y GUARDANDO %s", _nickname.c_str());
  int score_pos = UserDefault::sharedUserDefault()->getIntegerForKey("score_pos", 0);
  char score_name[80];
  char score_name_key[80];
  char score_pos_key[80];

  UserDefault::sharedUserDefault()->setIntegerForKey(score_name, _time_finished);
  for(int iScore = 0; iScore < MAX_ITEMS_SCORE; iScore++) {
    sprintf(score_pos_key,"score_pos_%d", iScore);
    int score_time = UserDefault::sharedUserDefault()->getIntegerForKey(score_pos_key, 0);
    
    if(_time_finished > score_time) {
      score_pos = iScore;
    }
  }
  sprintf(score_name_key, "score_name_%d", score_pos);
  sprintf(score_pos_key,"score_pos_%d", score_pos);
  UserDefault::sharedUserDefault()->setIntegerForKey(score_pos_key, _time_finished);
  UserDefault::sharedUserDefault()->setStringForKey(score_name_key, _nickname);
  UserDefault::sharedUserDefault()->flush();
  //VOLVIENDO AL MENU
  stopAllActions();
  unscheduleAllSelectors();
  removeFromParentAndCleanup(true);
  Scene* newScene = TransitionFade::create(0.7, NeuronMenu::createScene()); 
  Director::sharedDirector()->replaceScene(newScene);
}
示例#13
0
文件: Role.cpp 项目: qokelate/CCGame
Role::~Role()
{
	stopAllActions();
	unscheduleAllSelectors();
	if (mAIManager) mAIManager->release();
	gConfigManager->getRoleManager()->remove(this);
}
示例#14
0
void MenuPrincipal::onKeyReleased(EventKeyboard::KeyCode keyCode, cocos2d::Event *event){
  if(keyCode == EventKeyboard::KeyCode::KEY_BACKSPACE){
    std::cout << __FUNCTION__ << std::endl;
    stopAllActions();
    unscheduleAllSelectors();
    removeFromParentAndCleanup(true);
    Director::getInstance()->end();
  }
}
void LSWProgressTimer::scheduleProgressTimer(float dt)
{
    auto progressTimer = (ProgressTimer *)getChildByTag(100);
    progressTimer->setPercentage(progressTimer->getPercentage() + 10);
    if (progressTimer->getPercentage() >= 100)
    {
        unscheduleAllSelectors();
    }
}
CCControlStepper::~CCControlStepper()
{
    unscheduleAllSelectors();

    CC_SAFE_RELEASE(m_pMinusSprite);
    CC_SAFE_RELEASE(m_pPlusSprite);
    CC_SAFE_RELEASE(m_pMinusLabel);
    CC_SAFE_RELEASE(m_pPlusLabel);
}
示例#17
0
ControlStepper::~ControlStepper()
{
    unscheduleAllSelectors();

    CC_SAFE_RELEASE(_minusSprite);
    CC_SAFE_RELEASE(_plusSprite);
    CC_SAFE_RELEASE(_minusLabel);
    CC_SAFE_RELEASE(_plusLabel);
}
示例#18
0
void IFShakeGuideLayer::onTouchEnded(CCTouch* pTouch,CCEvent* pEvent){
    if(!isTouchInside(m_touchNode, pTouch) && clickFlag()){
        unscheduleAllSelectors();
        removeOneself(0);
        return;
    }
    if(isTouchInside(btnPic1, pTouch)){
        NotShowAgain();
        return;
    }
}
示例#19
0
文件: Boss.cpp 项目: joyfish/PlaneWar
void Boss::disappear() {
    g_pEventEngine->BundlerCall(BUND_ID_BOSS_DISAPPEAR, this, sizeof(this));
    unscheduleAllSelectors();
    stopAllActions();
    string ejson = string("Animation/Effect/") + m_pConfig->boom + ".ExportJson";
    ArmatureDataManager::getInstance()->addArmatureFileInfo(ejson);
    m_pBoom = Armature::create(m_pConfig->boom);
    m_pBoom->getAnimation()->play("boom");
    this->addChild(m_pBoom);
    m_pBoom->getAnimation()->setMovementEventCallFunc(this, movementEvent_selector(Boss::playActionOver));
}
示例#20
0
	void SnakeLayer::gameOver()
	{
		unscheduleAllSelectors();
		unscheduleUpdate();
		GameSettings::SnakeLastScore = score;
		if (GameSettings::SnakeLastScore > GameSettings::SnakeHighScore)
			GameSettings::SnakeHighScore = GameSettings::SnakeLastScore;
		GameSettings::SaveSettings();

		static_cast<SnakeScene*>(getParent())->showGameOver();
	}
示例#21
0
void GameWorld::GameOver()
{
	SOUND_ENGINE->playEffect("game_over.wav");

	unscheduleAllSelectors();
	setTouchEnabled(false);

	// create & add the game over popup
	GameOverPopup* game_over_popup = GameOverPopup::create(this, score_);
	addChild(game_over_popup, E_LAYER_POPUP);
}
示例#22
0
void GameScene::gameOver() {
    isGameOver = true;
    unscheduleAllSelectors();
    
    scheduleUpdate();
    
    for (int i = 0; i < hitCheckArray->count(); i++) {
        CCSprite* pipe = (CCSprite*)hitCheckArray->objectAtIndex(i);
        pipe->stopAllActions();
    }
    CCSprite* land = (CCSprite*)getChildByTag(TAG_LAND);
    land->stopAllActions();
}
示例#23
0
//-----------------------------------------------
//
//
void CFightGroundLayer::SheduleWin( ccTime tt )
{
    CFightFinish *pFightFinish = new CFightFinish( true );
    pFightFinish->init();
    pFightFinish->autorelease();
    addChild( pFightFinish, 100 );
    unscheduleAllSelectors();
    schedule( schedule_selector(CFightGroundLayer::ScheudleExit),2.0f );
    
    string strSendMail = GetGameDayAndTime() + ",";
    strSendMail = strSendMail + m_pPetLeft->GetPetData()->playername;
    
    CurlTest::ShareInstance()->SendMail( m_pPetLeft->GetPetData()->userid, m_pPetRight->GetPetData()->userid, strSendMail.c_str()  );
}
示例#24
0
void GameScene::restart(CCObject* obj) {
    CC_SAFE_RELEASE(pipeArray);
    CC_SAFE_RELEASE(hitCheckArray);
    
    stopAllActions();
    unscheduleAllSelectors();
    
    CCMenuItemSprite* item = (CCMenuItemSprite*)obj;
    CCScaleTo* scale = CCScaleTo::create(0.1f, 1.2f);
    CCScaleTo* scale2 = CCScaleTo::create(0.1f, 1.0f);
    CCSequence* seq = CCSequence::create(scale, scale2, NULL);
    item->runAction(seq);
    
    CCDirector::sharedDirector()->replaceScene(CCTransitionFade::create(1.5f, GameScene::scene()));
}
示例#25
0
void SchedulerUpdate::removeUpdates(float dt)
{
    auto& children = getChildren();

    for (auto& c : children)
    {
        auto obj = static_cast<Ref*>(c);
        auto node = static_cast<Node*>(obj);
        
        if (! node)
        {
            break;
        }
        node->unscheduleAllSelectors();
    }
}
示例#26
0
	void SnakeScene::updateMove(float)
	{
		if (dead) unscheduleAllSelectors();

		if (current == old) return;

		if (fabs(current.x) > fabs(current.y))
		{
			if (current.x > threshold.width) move(Directions::Right);
			else if (current.x < -threshold.width) move(Directions::Left);
		}
		else if (fabs(current.y) > fabs(current.x))
		{
			if (current.y > threshold.height) move(Directions::Up);
			else if (current.y < threshold.height) move(Directions::Down);
		}

		old = current;
	}
void CCCGameScrollView::scrollToPage( int nPage )
{
	// 关闭CCScrollView中的自调整
	unscheduleAllSelectors();
    
	CCPoint oOffset=getContentOffset();
	// 调整位置
	CCPoint adjustPos=ccp(-m_CellSize.width*nPage,0);
    
	// 调整动画时间
	float adjustAnimDelay=ccpDistance(adjustPos,oOffset)/m_fAdjustSpeed;
    
	// 调整位置
	setContentOffsetInDuration(adjustPos, adjustAnimDelay);
    
	if (nPage!=m_nPrePage)
	{
		schedule(schedule_selector(CCCGameScrollView::onScrollEnd),adjustAnimDelay,0,0.0f);
		m_nPrePage=nPage;
	}
}
示例#28
0
void Arcade::showLosser(){
  _stop = true;
  stopAllActions();
  unscheduleAllSelectors();
  CocosDenshion::SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(true);
  PLAY_MUSIC("musica y sonidos/pierde.ogg");

  Sprite* win = Sprite::create("efectos/pierde.png");
  Point pos_win(visibleSize.width/2, visibleSize.height - win->getContentSize().height);
  win->setPosition(pos_win);
  this->addChild(win);
  _goto_menu = true;
  auto a_menu = MenuItemImage::create(
				      "botones/boton_pierde.png",
				      "botones/boton_pierde_presionado.png",
				      CC_CALLBACK_0(Arcade::restartGame, this)
				      );
  auto menu = Menu::create(a_menu,NULL);
  menu->setPosition(Point(visibleSize.width/2,
			  visibleSize.height/2 + a_menu->getContentSize().height/2));
  this->addChild(menu);
}
void Level15::onTimer()
{
    nCnt++;
    if(bStar1 && bStar2){
        lbSecond->runAction(CCSequence::create(CCDelayTime::create(1.0f),CCCallFunc::create(this, callfunc_selector(Level15::playEffect2)), CCFadeIn::create(1.0f), NULL));
//        this->setTouchEnabled(false);
        unscheduleAllSelectors();
        return;
    }
    if(!g_bAuto) return;
    
    if (!bStar1  && nCnt >= 100) {
        nCnt = 0;
        shadowStar1->setVisible(false);
        bStar1 = true;
        pickup(star1);
    }
    if (!bStar2  && nCnt >= 100) {
        nCnt = 0;
        bStar2 = true;
        shadowStar2->setVisible(false);
        pickup(star2);
    }
}
void HelloWorld::Render(CCObject* sender, ::cocos2d::gui::TouchEventType type)
{
	if (type == ::cocos2d::gui::TOUCH_EVENT_ENDED)
	{
		if(SceneHelper::sharedSceneHelper()->isTouchRender())
		{
			return;
		}
	  	if (SceneHelper::sharedSceneHelper()->isDownloading())
		{
			return;
		}
		if(!SceneHelper::sharedSceneHelper()->isHaveResources())
		{
			return;
		}
        
        ::cocos2d::gui::UIButton* render = static_cast<cocos2d::gui::UIButton*>(sender);
        render->setBright(false);
        render->setTouchEnabled(false);
        SceneHelper::sharedSceneHelper()->loadConfig();
		SceneHelper::sharedSceneHelper()->saveSerchPath();
		
		if (strcmp(FileInfo::sharedFileInfo()->getFilename(), "") == 0)
		{
            render->setBright(false);
            render->setTouchEnabled(true);
			return;
		}
		SceneHelper::sharedSceneHelper()->setTouchRender(true);
		SceneRender* pScene = new SceneRender(FileInfo::sharedFileInfo()->getFilename());
		unscheduleAllSelectors();
        CCDirector::sharedDirector()->replaceScene((CCScene*)pScene); 
		SceneHelper::sharedSceneHelper()->setNowRunning(RENDER);
	}
}