Files
SmallGame_Cocos2dx/Classes/NewGuide/NewerGuideTaiko.cpp
T
2014-08-20 16:15:02 +08:00

209 lines
8.3 KiB
C++

#include "SpriteFrameManage.h"
#include "GameShare_Global.h"
#include "GameShare_Scene.h"
#include "GameFruitScene.h"
#include "NewerGuideFruit.h"
#include "StringUtil.h"
#include "NewerGuideTaiko.h"
#include "TaikoDefine.h"
#include "ComData.h"
#include "NumSprite.h"
CNewerGuideTaiko::CNewerGuideTaiko()
{
}
CNewerGuideTaiko::~CNewerGuideTaiko()
{
}
void CNewerGuideTaiko::onEnter()
{
CCNode::onEnter();
// CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
play();
}
void CNewerGuideTaiko::onExit()
{
CCNode::onExit();
// CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
}
void CNewerGuideTaiko::play()
{
CCSize sz = CCDirector::sharedDirector()->getWinSize();
mpFinger = CCSprite::create("CocoStudioResources/layoutNewerGuide/finger.png") ;
mpFinger->setAnchorPoint(ccp(0.f,0.8f));
mpFinger->setFlipY(false);
addChild(mpFinger,11);
int nType = 1;
int nCounter = 0;
CCSprite* pItem = CCSprite::create();
CCString strFileName;
strFileName.initWithFormat("CocoStudioResources/tai_ko/cell_%d.png",eTaikoType_1);
//pItem->setDisplayFrame(CCSpriteFrameManage::getInstance()->spriteFrameByName(strFileName.getCString()));
// pItem->setTexture(CCTexAddImage(strFileName.getCString()));
NumSprite::setSpriteTexture(pItem,CCTexAddImage(strFileName.getCString()));
addChild(pItem,10);
CCPoint ptStart = ccp( sz.width/2, sz.height - 200 - 162);
CCPoint ptTarget = ccp( sz.width/2, 293);
pItem->setPosition(ptStart);
mVecCell.push_back(pItem);
strFileName.initWithFormat("CocoStudioResources/tai_ko/cell_%d.png",eTaikoType_2);
mpL = CCSprite::create(strFileName.getCString());
strFileName.initWithFormat("CocoStudioResources/tai_ko/cell_%d.png",eTaikoType_1);
mpR = CCSprite::create(strFileName.getCString());
strFileName.initWithFormat("CocoStudioResources/tai_ko/cyc_in.png");
mpM = CCSprite::create(strFileName.getCString());
strFileName.initWithFormat("CocoStudioResources/tai_ko/cyc_big_drum_r.png");
mpML = CCSprite::create(strFileName.getCString());
mpML->setFlipX(true);mpML->setAnchorPoint(ccp(0.f,0.f));
strFileName.initWithFormat("CocoStudioResources/tai_ko/cyc_big_drum_r.png");
mpMR = CCSprite::create(strFileName.getCString());
mpMR->setAnchorPoint(ccp(1.f,0.f));
mpM->setPosition(ptTarget);
mpML->setPosition(ccp(ptTarget.x - 60 - 119,ptTarget.y - mpML->getContentSize().height/2 - 75));
mpMR->setPosition(ccp(ptTarget.x + 60 + 119 ,ptTarget.y - mpML->getContentSize().height/2 - 75));
mpL->setPosition(ccp(ptTarget.x - 200,ptTarget.y));
mpR->setPosition(ccp(ptTarget.x + 200,ptTarget.y));
mpML->setVisible(false);
mpMR->setVisible(false);
addChild(mpM,9);
addChild(mpL,10);
addChild(mpR,10);
addChild(mpML,10);
addChild(mpMR,10);
mVecCell[0]->setScale(0.2f);
CCActionInterval* pAct = CCSequence::create(CCShow::create(),CCPlace::create(ptStart),CCDelayTime::create(0.5f),
CCSpawn::create(CCMoveTo::create(2.f,ptTarget),CCScaleTo::create(2.f,1.f),NULL),
CCCallFuncND::create(this, callfuncND_selector(CNewerGuideTaiko::actCallfunc), (void*)"99"),CCDelayTime::create(2.f),
CCCallFuncND::create(this, callfuncND_selector(CNewerGuideTaiko::actCallfunc), (void*)"97"),
//大鼓
CCPlace::create(ptStart),CCDelayTime::create(0.5f),
CCSpawn::create(CCMoveTo::create(2.f,ccp(ptTarget.x,ptTarget.y + mpM->getContentSize().height/2) ),CCScaleTo::create(2.f,1.f),NULL),CCHide::create(),
CCCallFuncND::create(this, callfuncND_selector(CNewerGuideTaiko::actCallfunc), (void*)"96"),CCDelayTime::create(1.f),
CCCallFuncND::create(this, callfuncND_selector(CNewerGuideTaiko::actCallfunc), (void*)"98"),
//CCCallFuncND::create(this, callfuncND_selector(CNewerGuideTaiko::actCallfunc), (void*)"98"),
NULL);
mVecCell[0]->runAction(CCRepeatForever::create(pAct));
}
CCActionInterval* CNewerGuideTaiko::actClick()
{
return CCMoveBy::create(0.2f,ccp(0,15)),CCMoveBy::create(0.2f,ccp(0,-15));
}
void CNewerGuideTaiko::actCallfunc(CCNode* sender, void* data)
{
CCString str = (char*)data;
if (str.compare("99") == 0)//消除-炸弹特效
{
CCActionInterval* pAction = CCSequence::create(CCShow::create(),CCPlace::create(mpR->getPosition()),
actClick(),/*CCHide::create(),*/
NULL);
mpFinger->runAction(pAction);
CCSprite* spMEff = CCSprite::create();
CCAnimation* pAni = CCAnimation::create();
CCString str;
for (int i = 1; i <= 5; ++i){
str.initWithFormat("effect/bomb/%d.png",i);
pAni->addSpriteFrameWithFileName(str.getCString());
}
pAni->setDelayPerUnit(0.5f/5.f);
pAni->setLoops(1);
pAction = CCSequence::create(CCShow::create(),CCDelayTime::create(0.5f),
CCAnimate::create(pAni),CCHide::create(),
NULL);
mVecCell[0]->runAction(pAction);
//addChild(spMEff,11);
// spMEff->setPosition(mpM->getPosition());
// mVecCell[0]->setVisible(false);
}else if (str.compare("97") == 0)//引导大鼓准备
{
mVecCell[0]->setScale(0.2f);
mVecCell[0]->setVisible(true);
mpFinger->setVisible(true);
mpFinger->setPosition(mpR->getPosition());
CCString strFileName;
strFileName.initWithFormat("CocoStudioResources/tai_ko/cell_%d.png",eTaikoType_BigDrum);
//mVecCell[0]->setDisplayFrame(CCSpriteFrameManage::getInstance()->spriteFrameByName(strFileName.getCString()));
// mVecCell[0]->setTexture(CCTexAddImage(strFileName.getCString()));
NumSprite::setSpriteTexture(mVecCell[0],CCTexAddImage(strFileName.getCString()));
mpL->setVisible(true);
mpR->setVisible(true);
strFileName.initWithFormat("CocoStudioResources/tai_ko/cyc_big_drum.png");
// mpM->setTexture(CCTexAddImage(strFileName.getCString()));
NumSprite::setSpriteTexture(mpM,CCTexAddImage(strFileName.getCString()));
// mpM->setDisplayFrame(CCSpriteFrameManage::getInstance()->spriteFrameByName(strFileName.getCString()));
//右边手
mpFinger->runAction(CCRepeatForever::create(CCSequence::create(CCMoveBy::create(0.1f,ccp(0,15)),CCMoveBy::create(0.1f,ccp(0,-15)),NULL)));
//左边手
CCSprite* pFingerL = CCSprite::create("CocoStudioResources/layoutNewerGuide/finger.png");
pFingerL->setTag(21);
addChild(pFingerL,20);
pFingerL->setFlipX(true);
pFingerL->setAnchorPoint(ccp(1.f,1.f));
pFingerL->runAction(CCRepeatForever::create(CCSequence::create(CCMoveBy::create(0.1f,ccp(0,15)),CCMoveBy::create(0.1f,ccp(0,-15)),NULL)));
pFingerL->setPosition(mpL->getPosition());
mpML->setVisible(true);
mpMR->setVisible(true);
mpMR->setRotation(20.f);
mpMR->stopAllActions();
CCActionInterval* pActRo = CCRotateBy::create(0.1f,-20.f);
CCActionInterval* pAction = CCSequence::create(
CCShow::create(),
pActRo,
pActRo->reverse(),
NULL);
mpMR->runAction(CCRepeatForever::create( pAction));
mpML->setRotation(-20.f);
mpML->stopAllActions();
pActRo = CCRotateBy::create(0.1f,20.f);
pAction = CCSequence::create(
CCShow::create(),
pActRo,
pActRo->reverse(),
NULL);
mpML->runAction(CCRepeatForever::create( pAction));
}
else if (str.compare("98") == 0)//重置
{
//移除左边的手
removeChildByTag(21);
mpFinger->setVisible(false);
mpML->setVisible(false);
mpMR->setVisible(false);
mpML->stopAllActions();
mpMR->stopAllActions();
CCString strFileName;
strFileName.initWithFormat("CocoStudioResources/tai_ko/cyc_in.png");
//mpM = CCSprite::create(strFileName.getCString());
//mpM->setTexture(CCTexAddImage(strFileName.getCString()));
NumSprite::setSpriteTexture(mpM,CCTexAddImage(strFileName.getCString()));
mpL->setVisible(true);
mpR->setVisible(true);
mVecCell[0]->setScale(0.2f);
strFileName.initWithFormat("CocoStudioResources/tai_ko/cell_%d.png",eTaikoType_1);
// mVecCell[0]->setDisplayFrame(CCSpriteFrameManage::getInstance()->spriteFrameByName(strFileName.getCString()));
// mVecCell[0]->setTexture(CCTexAddImage(strFileName.getCString()));
NumSprite::setSpriteTexture(mVecCell[0],CCTexAddImage(strFileName.getCString()));
mpFinger->stopAllActions();
}else if (str.compare("96") == 0)
{
// CCActionInterval* pAction = CCSequence::create(CCShow::create(),CCPlace::create(mpM->getPosition()),
// actClick(),CCHide::create(),
// NULL);
// mpFinger->runAction(pAction);
}
}