Files
2014-08-20 16:15:02 +08:00

156 lines
5.3 KiB
C++

#include "SpriteFrameManage.h"
#include "RTItem.h"
#include "GameShare_Global.h"
#include "GameShare_Scene.h"
#include "NewerGuideRightTouch.h"
CNewerGuideRihgtTouch::CNewerGuideRihgtTouch()
{
}
CNewerGuideRihgtTouch::~CNewerGuideRihgtTouch()
{
}
void CNewerGuideRihgtTouch::onEnter()
{
CCNode::onEnter();
// CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
play();
}
void CNewerGuideRihgtTouch::onExit()
{
CCNode::onExit();
// CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
}
void CNewerGuideRihgtTouch::play()
{
CCSize sz = CCDirector::sharedDirector()->getWinSize();
CCSprite* pFinger = CCSprite::create("CocoStudioResources/layoutNewerGuide/finger.png") ;
pFinger->setAnchorPoint(ccp(0.f,1.f));
pFinger->setFlipY(false);
int nCounter = 0;
for (int y = 0 ; y < 3; ++y)
{
for (int x = 0; x < 3;++x)
{
CRTItem* pItem = CRTItem::create();
pItem->setType(1);
pItem->setState(eRTItemState1);
if( nCounter == 0|| nCounter==1)
pItem->setType(2);
if(nCounter == 2)
{
pItem->setType(2);
pItem->setState(eRTItemState2);
}
if(nCounter == 8)
{
pItem->setType(3);
pItem->setState(eRTItemState2);
}
pItem->updataCell();
addChild(pItem,10);
CCPoint ptOffect = ccp(sz.width/2 - (3 * pItem->getSprite()->getContentSize().width)/2 + pItem->getSprite()->getContentSize().width/2,
sz.height/2 + (3 * pItem->getSprite()->getContentSize().height)/2);
// ptOffect = ccp(0,0);
pItem->setPosition(ccp(ptOffect.x + x * pItem->getSprite()->getContentSize().width, ptOffect.y - y * pItem->getSprite()->getContentSize().height));
mVecCell.push_back(pItem);
nCounter++;
}
}
addChild(pFinger,10);
CCActionInterval* pAct = CCSequence::create(CCShow::create(),CCPlace::create(ccp(mVecCell[0]->getPositionX(),mVecCell[0]->getPositionY() + 15 )),CCDelayTime::create(0.5f),
CCMoveBy::create(0.1f,ccp(0,15)),CCMoveBy::create(0.1f,ccp(0,-15)),
CCMoveTo::create(1.f,ccp(mVecCell[1]->getPositionX(),mVecCell[1]->getPositionY() )),
CCMoveBy::create(0.1f,ccp(0,15)),CCMoveBy::create(0.1f,ccp(0,-15)),
CCCallFuncND::create(this, callfuncND_selector(CNewerGuideRihgtTouch::rtActCallfunc), (void*)"1"),
CCDelayTime::create(1.f),
CCMoveBy::create(0.1f,ccp(0,15)),CCMoveBy::create(0.1f,ccp(0,-15)),
CCMoveTo::create(1.f,ccp(mVecCell[2]->getPositionX(),mVecCell[2]->getPositionY())),
CCMoveBy::create(0.1f,ccp(0,15)),CCMoveBy::create(0.1f,ccp(0,-15)),
CCCallFuncND::create(this, callfuncND_selector(CNewerGuideRihgtTouch::rtActCallfunc), (void*)"2"),
CCDelayTime::create(1.f),
CCCallFuncND::create(this, callfuncND_selector(CNewerGuideRihgtTouch::rtActCallfunc), (void*)"3"),
NULL);
pFinger->runAction(CCRepeatForever::create(pAct));
}
CCActionInterval* CNewerGuideRihgtTouch::actClick()
{
return CCMoveBy::create(0.1f,ccp(0,15)),CCMoveBy::create(0.1f,ccp(0,-15));
}
void CNewerGuideRihgtTouch::rtActCallfunc(CCNode* sender, void* data)
{
CCString str = (char*)(data);
if(str.compare("1") == 0){
mVecCell[0]->setVisible(true);
((CRTItem*)mVecCell[0])->setType(4);
((CRTItem*)mVecCell[0])->updataCell();
CRTItem* pCell = (CRTItem*)mVecCell[1];
CCAnimation* pAni = CCAnimation::create();
CCString str;
str.initWithFormat("cell%d_%d.png",pCell->getType(),1);
pAni->addSpriteFrame(CCSpriteFrameManage::getInstance()->spriteFrameByName(str.getCString()));
str.initWithFormat("cell%d_%d.png",pCell->getType(),12);
pAni->addSpriteFrame(CCSpriteFrameManage::getInstance()->spriteFrameByName(str.getCString()));
str.initWithFormat("cell%d_%d.png",pCell->getType(),2);
pAni->addSpriteFrame(CCSpriteFrameManage::getInstance()->spriteFrameByName(str.getCString()));
pAni->setDelayPerUnit(0.3/3.f);
pAni->setLoops(1);
pCell->getSprite()->runAction(CCAnimate::create(pAni));
}else if (str.compare("2") == 0)
{
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);
CCActionInterval* pAction = CCSequence::create(
CCAnimate::create(pAni),
NULL);
((CRTItem*)mVecCell[1])->getSprite()->runAction(pAction);
pAni = CCAnimation::create();
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(
CCAnimate::create(pAni),
NULL);
((CRTItem*)mVecCell[2])->getSprite()->runAction(pAction);
}else if (str.compare("3") == 0){
int nCounter = 0;
for (int y = 0 ; y < 3; ++y){
for (int x = 0; x < 3;++x){
CRTItem* pItem = (CRTItem*)mVecCell[nCounter];
pItem->getSprite()->setVisible(true);
if( nCounter == 0|| nCounter==1)
pItem->setType(2);
if(nCounter == 2)
{
pItem->setType(2);
pItem->setState(eRTItemState2);
}
if(nCounter == 8)
{
pItem->setType(3);
pItem->setState(eRTItemState2);
}
pItem->updataCell();
nCounter++;
}
}
}
}