示例#1
0
void Piece::playPiece(){
	auto par = dynamic_cast<HorseshoeMain*>(this->getParent());
	if(par->isConnected(position)){
		auto ai = par->getAI();
		bool p = UserDefault::getInstance()->getBoolForKey("Player");
		auto audio = CocosDenshion::SimpleAudioEngine::getInstance();
		if(UserDefault::getInstance()->getBoolForKey("Sound",true))
			audio->playEffect("sfx/Move.wav");
		Size visibleSize = Director::getInstance()->getVisibleSize();
		Vec2 origin = Director::getInstance()->getVisibleOrigin();
		int x = par->empty;
		par->empty = position;
		position = x;
		Vec2 np;
		switch(position){
			case 1: np = Vec2(origin.x + visibleSize.width/2 - 180, origin.y + 2*visibleSize.height/5 + 180);
			break;
			case 2: np = Vec2(origin.x + visibleSize.width/2 + 180, origin.y + 2*visibleSize.height/5 + 180);
			break;
			case 3: np = Vec2(origin.x + visibleSize.width/2, origin.y + 2*visibleSize.height/5);
			break;
			case 4: np = Vec2(origin.x + visibleSize.width/2 - 180, origin.y + 2*visibleSize.height/5 - 180);
			break;
			case 5: np = Vec2(origin.x + visibleSize.width/2 + 180, origin.y + 2*visibleSize.height/5 - 180);
			break;
		}
		auto move = MoveTo::create(0.4f, np);
		auto scaleup = ScaleTo::create(0.2f,1.4f);
		auto scaledown = ScaleTo::create(0.2f,1);
		auto scale = Sequence::createWithTwoActions(scaleup,scaledown);
		auto act = Spawn::createWithTwoActions(scale,move);
		this->runAction(act);
		CCLOG("%d to %d", par->empty, position);
		turn=!turn;	
		if(par->checkEnd(turn)){
			ended = true;
			par->setBGColor(Color3B(57,120,63));
			if(UserDefault::getInstance()->getBoolForKey("Sound",true)){
				if(ai&&turn!=p)
					audio->playEffect("sfx/Win.wav");
				else
					audio->playEffect("sfx/Lose.wav");
			}
		}
		else if(!turn)
			par->setBGColor(Color3B(156,48,47));
		else
			par->setBGColor(Color3B(56,92,120));
		if(ai&&turn!=p)
			par->playAI();
	}
}
示例#2
0
GLvoid LevelEditor::buttonNextTriggered()
{
    if (currentView == SET_NAME_VIEW)
    {
        if (currentName.endsWith(' '))
            currentName.chop(1);

        if (currentName.startsWith(' '))
            currentName.remove(0, 1);

        if (currentName != "")
        {
            currentName = currentName.toLower();

            if (QFile::exists("resources/levels/xml/" + currentName + ".xml"))
            {
                currentError = "Name already taken.";
                return;
            }

            isMoving = true;
            emit playEffect(EFFECT_JUMPSMALL);
            currentActions->setPrimaryAction(GO_TO_SET_PARAM_VIEW);
        }
    }
    else if (currentView == SET_PARAM_VIEW)
    {
        isMoving = true;
        emit playEffect(EFFECT_JUMPSMALL);
        currentActions->setPrimaryAction(GO_TO_SET_GRAVITY_VIEW);
    }
    else if (currentView == SET_GRAVITY_VIEW)
    {
        emit playEffect(EFFECT_JUMPSMALL);
        isMoving = true;

        if (level == NULL)
            level = new Level(currentName, currentLength, currentWidth, this, asphaltSkin);

        level->setGravity(currentGravity);

        levelOffset->z -= ((currentLength * 0.4f) / 2.0f) - 10.0f;
        currentActions->setPrimaryAction(GO_TO_EDITING_LEVEL_VIEW);
    }
    else
    {
        saveLevel();
    }
}
示例#3
0
GLvoid LevelEditor::quitEditor()
{
    isMoving = true;
    emit stopAmbientMusic();
    emit playEffect(EFFECT_STOMP);
    currentActions->setPrimaryAction(EXIT_TO_MENU);
}
void ReserveRetunrHomeController::onTouchEnded(Touch *touch, Event *unused_event)
{
    showSPrite();
    _reserveReturne = true;
    playEffect();
    return;
}
示例#5
0
void Robot_Soldier::updateGameObject(float delta) {


  if (AI_STATE != AI_DEAD) {
    if (HP <= 0) {
      AI_STATE = AI_DEAD;
      auto audio = CocosDenshion::SimpleAudioEngine::getInstance();
      audio->setEffectsVolume(0.2f);
      audio->playEffect("explosion.aif");
      if (hsp >= 0) {
        setAnimation("robSol_Dead");
        player_sprite->setScaleX(1);
      }
      else {
        setAnimation("robSol_Dead");
        player_sprite->setScaleX(-1);
      }

      return;

    }
    if (hsp > 0) {
      setAnimation("robSol_WalkRight");
      player_sprite->setScaleX(1);
    }
    else {
      setAnimation("robSol_WalkLeft");
      player_sprite->setScaleX(-1);
    }
  }
  else {
    hsp *= 0.98;
  }
}
示例#6
0
void E002_C030_P130::intoTarget(CJSprite* sp, CJSprite *target)
{
    setTouchDisalbeBaseLayer();
    
    for (int i = 0 ; i < mCompleteTargetTags->size(); i++)
    {
        if(mCompleteTargetTags->at(i) == target->getTag())
        {
            setTouchEnableBaseLayer();
            
            m_touchingExampleSp->runAction(CCSpawn::create(CCEaseBackOut::create(CCMoveTo::create(0.1, mTouchedItem->getOriginalPosition())),
                                                           CCScaleTo::create(0.1, 1.0),
                                                           NULL));
            return;
        }
    }
    
    if(mTouchedItem->getCorrectTag() == target->getTag())
    {
        playEffect(NULL, 11);
    }
    
    sp->runAction(CCSequence::create(CCSpawn::create(CCEaseSineInOut::create(CCMoveTo::create(0.2, ccp(target->getPositionX()+2, target->getPositionY()-3 ))),
                                                     CCScaleTo::create(0.1, 1.2),
                                                     NULL),
                                     //CCDelayTime::create(0.5f),
                                     CCCallFuncND::create(this, callfuncND_selector(E002_C030_P130::checkAnswer), (void*)target->getTag()),
                                     NULL));
}
示例#7
0
GLvoid LevelEditor::letterTyped(int key)
{
    if (currentView == SET_NAME_VIEW)
    {
        bool isSpace = false;

        if (key != Qt::Key_Space)
        {
            currentName += key;
        }
        else
        {
            if (currentName.endsWith(' '))
                return;

            isSpace = true;
            currentName.append(" ");
        }

        emit playEffect(EFFECT_COIN);

        if (!isSpace)
        {
            formSetLevelName->~CubeStringList();
            formSetLevelName = new CubeStringList(currentName, 14.0f, 6.0f, alphabet, 2.0f, FORM_SET_LEVEL_NAME);

            GLuint stringName = formSetLevelName->getLabelCount() - 1;
            GLuint letterName = formSetLevelName->getLabel(stringName).size() - 1;

            if (!formSetLevelName->isRotating(stringName, letterName))
                formSetLevelName->startLetterRotation(stringName, letterName, 30, 4);
        }
    }
}
void SpriteMonsterArcher::onEventMsgAttack(CCPoint serverPos, CCPoint direction, int animId, SkillInfo info)
{
	SpriteMonster::onEventMsgAttack(serverPos, direction, animId, info);
	if (info.effectId)
	{
		playEffect(info);
	}
}
void ComsumeController::onTouchEnded(Touch *touch, Event *unused_event)
{
    playEffect();
    
    showSPrite();
    
    return;
}
示例#10
0
文件: Prop.cpp 项目: gittor/Explore
bool Prop::willPlayerEnter( Player* player )
{
	switch (m_type)
	{
	case udi_t::udi_heart:
		playEffect(PickupHeart);
		break;
	case udi_t::udi_shield:
		playEffect(PickupShield);
		break;
	case udi_t::udi_key:
		playEffect(PickupKey);
		break;
	case udi_t::udi_arrow:
		playEffect(PickupArrow);
		break;
	case udi_t::udi_hoe:
		playEffect(PickupHoe);
		break;
	case udi_t::udi_bomb:
		playEffect(PickupBomb);
		break;
	case udi_t::udi_map:
		playEffect(PickupMap);
		break;
	default:
		break;
	}
	return true;
}
示例#11
0
void E002_C030_P130::onFails(CCNode *node)
{
    setTouchEnableBaseLayer();
    
    playEffect(NULL, 12);
    m_touchingExampleSp->runAction(CCSpawn::create(CCEaseBackOut::create(CCMoveTo::create(0.1, mTouchedItem->getOriginalPosition())),
                                                   CCScaleTo::create(0.1, 1.0),
                                                   NULL));
}
示例#12
0
GLvoid LevelEditor::buttonBackTriggered()
{
    if (currentView == SET_PARAM_VIEW)
    {
        isMoving = true;
        emit playEffect(EFFECT_JUMPSMALL);
        currentActions->setPrimaryAction(GO_TO_SET_NAME_VIEW);
    }
    else if (currentView == SET_GRAVITY_VIEW)
    {
        if (level == NULL)
        {
            isMoving = true;
            emit playEffect(EFFECT_JUMPSMALL);
            currentActions->setPrimaryAction(GO_TO_SET_PARAM_VIEW);
        }
    }
}
示例#13
0
GLvoid LevelEditor::shorten()
{
    if (currentLength - 3 >= MIN_LEVEL_LENGTH)
    {
        emit playEffect(EFFECT_COIN);
        lengthLabel->~CubeString();
        currentLength -= 3;
        lengthLabel = new CubeString(QString::number(currentLength / 3), 3, alphabet, LENGTH_LABEL);
    }
}
示例#14
0
GLvoid LevelEditor::saveLevel()
{
    bool newlyCreated = false;
    level->save(&newlyCreated);

    emit playEffect(EFFECT_COIN);

    if (newlyCreated)
        emit addLevelToLevelsList(level);
}
示例#15
0
GLvoid LevelEditor::gravityPlus()
{
    if (currentGravity < MAX_GRAVITY)
    {
        emit playEffect(EFFECT_COIN);
        gravityLabel->~CubeString();
        currentGravity++;
        gravityLabel = new CubeString(QString::number(currentGravity), 3, alphabet, GRAVITY_LABEL);
    }
}
示例#16
0
GLvoid LevelEditor::reduce()
{
    if (currentWidth - 3 >= MIN_LEVEL_WIDTH)
    {
        emit playEffect(EFFECT_COIN);
        widthLabel->~CubeString();
        currentWidth -= 3;
        widthLabel = new CubeString(QString::number(currentWidth / 3), 3, alphabet, WIDTH_LABEL);
    }
}
示例#17
0
GLvoid LevelEditor::enlarge()
{
    if (currentWidth + 3 <= MAX_LEVEL_WIDTH)
    {
        emit playEffect(EFFECT_COIN);
        widthLabel->~CubeString();
        currentWidth += 3;
        widthLabel = new CubeString(QString::number(currentWidth / 3), 3, alphabet, WIDTH_LABEL);
    }
}
示例#18
0
bool TrapFire::willPlayerEnter( Player* player )
{
	stopAllActions();
	runAction( Sequence::create(Animate::create(fireAnimation(9)), CallFunc::create([=](){
		this->runAction( RepeatForever::create(Animate::create(this->fireAnimation(2))) );
	}), nullptr) );

	playEffect(TrapBurn);
	return true;
}
示例#19
0
void CJMultimedia::playEffectWithDelay(CCNode* sender, std::string fileName, float delay)
{
    if (delay != 0) {
        
        sender->runAction(CCSequence::create(CCDelayTime::create(delay),
                                             CCCallFuncND::create(sender, callfuncND_selector(CJMultimedia::_playEffectWithDelayCallfunc),new CCString(fileName)),
                                             NULL));
    }
    else{
        playEffect(fileName);
    }
}
示例#20
0
Bullet* GameController::spawnBullet( int type, Vec2 pos, Vec2 tar)
{
	auto audio = CocosDenshion::SimpleAudioEngine::getInstance();
	Bullet* bullet = nullptr;
	switch( type )
	{
	case 1 : //indian
		{
			if (_player->nrOfArrows >= 0)
			{
				audio->playEffect( "arrow.wav", false, 1.0f, 1.0f, 1.0f );
				bullet = Arrow::create();
				bullet->setPosition( pos );
				bullet->setTarget( tar );
				_player->nrOfArrows -= 1;
			}
		break;
		} 
	case 2 : //cowboy
		{
		audio->playEffect( "gun.mp3", false, 1.0f, 1.0f, 1.0f );
		bullet = Bullet::create();
		bullet->setPosition( pos );
		bullet->setTarget( tar );
		break;
		}
	}

	if( bullet ) 
    {
        bullets.pushBack( bullet );
        bullet->setPosition( pos );
        return bullet;
    }
    return bullet;

};
示例#21
0
void SelectMenuView::onTouchBeautyCard( CCObject* sender , TouchEventType type )
{
	UIWidget* widget = static_cast<UIWidget*>(sender);

	if( type == TOUCH_EVENT_ENDED )
	{playEffect(EFFECT_CLICK);
		int beautyIndex = widget->getTag() - CARD_TAG;
		if( beautyIndex < REAL_BEAUTY_NUM )
		{
			beautyTouched = beautyIndex;
			_delegate->gotoBeauty(beautyIndex);
		}
		CCLOG("touch %s",widget->getName());
	}
}
示例#22
0
void SelectMenuView::onTouchUnlock(CCObject *pSender, TouchEventType type)
{
	if(type == TOUCH_EVENT_ENDED)
	{playEffect(EFFECT_CLICK);
		UIButton* button = (UIButton*)pSender;
		if(strcmp(button->getName(),"panelLock_btn_back") == 0)
		{
			noticeUnlock(0);
		}
		else if(strcmp(button->getName(),"panelLock_btn_unlock") == 0)
		{
			_delegate->gotoUnlockBeauty(beautyTouched);
		}
	}
}
示例#23
0
void E002_C030_P130::onComplete()
{
    playEffect(NULL, 13);
    CJAnimation *ani = playAnimation("MEERKAT", "e002_c030_p130_flash_reward_action", 1, kDepth4_title-1);
    
    addNarrationOnFlashFrame(ani, 203 - 179, getFilePath("snd","e002_c030_p000_snd_s_07_01_ar.mp3").c_str());
    addNarrationOnFlashFrame(ani, 203 - 179, getFilePath("snd","e002_c030_p000_snd_s_07_01_as.mp3").c_str());
    addNarrationOnFlashFrame(ani, 203 - 179, getFilePath("snd","e002_c030_p000_snd_s_07_01_bb.mp3").c_str());
    
    addEffectOnFlashFrame(ani, 179-179, getFilePath("snd","e002_c030_p130_sfx_run_all.mp3").c_str());

    //addEffectOnFlashFrame(ani, 228-179, getFilePath("snd","e002_c030_p130_sfx_run01.mp3").c_str());
    //addEffectOnFlashFrame(ani, 305-179, getFilePath("snd","e002_c030_p130_sfx_plane_ar.mp3").c_str());

}
示例#24
0
文件: Coin.cpp 项目: gittor/Explore
bool Coin::willPlayerEnter( Player* player )
{
// 	switch (m_coin)
// 	{
// 	case 10:
// 		playEffect(PickupGold0);
// 		break;
// 	case 50:
// 	case 100:
// 		playEffect(PickupGold1);//им?бфим?и▓
// 		break;
// 	}
	playEffect(PickupGold0);
	return true;
}
示例#25
0
bool E002_C010_P230::onTouchBegan(CCPoint tp)
{

//    CJSprite* queImg = mQuestions[m_nCurrentStageIndex]->imgSprite;
//    if (queImg && CJUtils::hitTestPoint(queImg, tp, false)) {
//        mQuestions[m_nCurrentStageIndex]->playEffect();
//        mQuestions[m_nCurrentStageIndex]->playAction(mQuestions[m_nCurrentStageIndex]->imgSprite);
//        return false;
//    }
    
    if (bIsJumping == false && bIsKoong == false) {
        bIsJumping = true;
        _playAnimationBoomBoom(FLASH_KEY_ACTION1,1);
        playEffect("e002_c010_p000_sfx_08.mp3");
    }
    return false;
}
示例#26
0
void SelectMenuView::onTouchButton( CCObject* sender , TouchEventType type )
{
	UIButton* widget = static_cast<UIButton*>(sender);

	if( type == TOUCH_EVENT_ENDED )
	{playEffect(EFFECT_CLICK);
		if(strcmp(widget->getName(),"Button_back") == 0)
		{
			_delegate->gotoMainMenu();
		}
		else
		{
			_delegate->gotoBoss();
		}
		CCLOG("touch %s",widget->getName());
	}
}
示例#27
0
bool TrapBomb::onPlayerSteping( Player* player )
{
	Animation* ani = Animation::create();
	for (int i=1; i<10; ++i)
	{
		string name = sstr("eb_%02d.png", i);
		ani->addSpriteFrameWithFile( name );
	}
	ani->setDelayPerUnit(0.1f);
	auto reset = [=](){
		this->initWithFile("eb_00.png");
	};
	this->runAction( Sequence::create(Animate::create(ani),CallFunc::create(reset),nullptr) );

	playEffect(TrapExp);
	return false;
}
示例#28
0
Curupira::~Curupira()
{
	//step("[Curupira] Destroying.");
	if(m_position.x % 23 == 0)
		setCurrentEffect(eDerp1);
	else if(m_position.x % 19 == 0)
		setCurrentEffect(eDerp2);
	else if(m_position.x % 17 == 0)
		setCurrentEffect(eDerp3);
	else if(m_position.x % 13 == 0)
		setCurrentEffect(eDerp4);
	else if(m_position.x % 11 == 0)
		setCurrentEffect(eDerp5);
	else if(m_position.x % 9 == 0)
		setCurrentEffect(eDerp6);
	else
		setCurrentEffect(eDerp7);
	playEffect();
}
示例#29
0
void E002_C010_P230::onSuccesses(CCNode *node, int tag)
{
    CCLog("onSuccess");
    setTouchDisalbeBaseLayer();
    stopNarration("e002_c010_p210_sfx_horse_fast_run.mp3");
    
    
    _playAnimationBoomBoom(FLASH_KEY_LOOPING);

    mRobot = _playAnimationRobot(FLASH_KEY_SUCCESS, 2);
    mRobot ->setPositionX(totalDist+mRobot->getPositionX());

    
    mAnison = _playAnimationAnison(FLASH_KEY_SUCCESS, 2);
    mAnison->setPosition(ccp(totalDist+700, 300));
    
    mSndManager->playCorrectNarrationAnison(E002_C010_SoundManager::p210);
    playEffect("e002_c010_p200_intro_sfx_people.mp3");
    
}
void Blob::animate_jump()
{
    float rate = 0.5f;
    cocos2d::Node * bob_node = cocos2d::Director::getInstance()->getRunningScene()->getChildByName("Bob");
    cocos2d::Sprite * bob_sprite = static_cast<cocos2d::Sprite*>(bob_node);
    auto move = cocos2d::MoveBy::create(0.2, cocos2d::Vec2(0,150));
    auto move_back = move->reverse();
    auto move_ease_out = cocos2d::EaseOut::create(move->clone(), rate );
    auto move_ease_out_back = cocos2d::EaseOut::create(move_back->clone(), rate );
    auto delay = cocos2d::DelayTime::create(0.1f);
    auto callback_jump_finished = cocos2d::CallFunc::create( [this]() {
        this->_is_jumping = false;
    });
    auto seq = cocos2d::Sequence::create(move_ease_out, delay, move_ease_out_back, delay->clone(), callback_jump_finished, nullptr);
    _is_jumping=true;
    bob_sprite->runAction(seq);
    auto audio = CocosDenshion::SimpleAudioEngine::getInstance();
    audio->playEffect("jump.mp3", false, 1.0f, 1.0f, 1.0f); // http://www.cocos2d-x.org/reference/native-cpp/V3.2/de/d8f/class_cocos_denshion_1_1_simple_audio_engine.html#ae64f7ddd5867de66641dd97361f22c6f
    
}