mirror of
https://github.com/wu736139669/SmallGame_Cocos2dx.git
synced 2026-08-05 06:23:09 +00:00
209 lines
8.3 KiB
C++
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);
|
|
}
|
|
} |