2012-06-14 05:19:13 +08:00
|
|
|
#include "HelloCocosBuilderLayer.h"
|
|
|
|
|
|
|
|
#include "extensions/CCBReader/CCBReader.h"
|
|
|
|
#include "extensions/CCBReader/CCNodeLoaderLibrary.h"
|
|
|
|
|
2012-06-15 05:23:53 +08:00
|
|
|
#include "../TestHeader/TestHeaderLayerLoader.h"
|
|
|
|
#include "../ButtonTest/ButtonTestLayerLoader.h"
|
2012-06-14 05:19:13 +08:00
|
|
|
|
|
|
|
USING_NS_CC;
|
|
|
|
USING_NS_CC_EXT;
|
|
|
|
|
|
|
|
HelloCocosBuilderLayer * HelloCocosBuilderLayer::node() {
|
|
|
|
HelloCocosBuilderLayer * ptr = new HelloCocosBuilderLayer();
|
|
|
|
if(ptr && ptr->init()) {
|
|
|
|
ptr->autorelease();
|
|
|
|
return ptr;
|
|
|
|
}
|
|
|
|
CC_SAFE_DELETE(ptr);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
void HelloCocosBuilderLayer::openTest(const char * pCCBFileName, const char * pCCNodeName, CCNodeLoader * pCCNodeLoader) {
|
|
|
|
/* Create an autorelease CCNodeLoaderLibrary. */
|
|
|
|
CCNodeLoaderLibrary * ccNodeLoaderLibrary = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary();
|
|
|
|
|
|
|
|
ccNodeLoaderLibrary->registerCCNodeLoader("TestHeaderLayer", TestHeaderLayerLoader::loader());
|
|
|
|
if(pCCNodeName != NULL && pCCNodeLoader != NULL) {
|
|
|
|
ccNodeLoaderLibrary->registerCCNodeLoader(pCCNodeName, pCCNodeLoader);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Create an autorelease CCBReader. */
|
|
|
|
cocos2d::extension::CCBReader * ccbReader = new cocos2d::extension::CCBReader(ccNodeLoaderLibrary);
|
|
|
|
ccbReader->autorelease();
|
|
|
|
|
|
|
|
/* Read a ccbi file. */
|
|
|
|
// Load the scene from the ccbi-file, setting this class as
|
|
|
|
// the owner will cause lblTestTitle to be set by the CCBReader.
|
|
|
|
// lblTestTitle is in the TestHeader.ccbi, which is referenced
|
|
|
|
// from each of the test scenes.
|
|
|
|
CCNode * node = ccbReader->readNodeGraphFromFile("ccb/official/pub/", pCCBFileName, this);
|
|
|
|
|
|
|
|
this->mTestTitleLabelTTF->setString(pCCBFileName);
|
|
|
|
|
|
|
|
CCScene * scene = CCScene::node();
|
|
|
|
if(node != NULL) {
|
|
|
|
scene->addChild(node);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Push the new scene with a fancy transition. */
|
|
|
|
ccColor3B transitionColor;
|
|
|
|
transitionColor.r = 0;
|
|
|
|
transitionColor.g = 0;
|
|
|
|
transitionColor.b = 0;
|
|
|
|
|
|
|
|
CCDirector::sharedDirector()->pushScene(CCTransitionFade::transitionWithDuration(0.5f, scene, transitionColor));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void HelloCocosBuilderLayer::onNodeLoaded(cocos2d::CCNode * pNode, cocos2d::extension::CCNodeLoader * pNodeLoader) {
|
|
|
|
CCRotateBy * ccRotateBy = CCRotateBy::actionWithDuration(0.5f, 10);
|
|
|
|
CCRepeatForever * ccRepeatForever = CCRepeatForever::actionWithAction(ccRotateBy);
|
|
|
|
this->mBurstSprite->runAction(ccRepeatForever);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2012-06-14 15:01:01 +08:00
|
|
|
SEL_MenuHandler HelloCocosBuilderLayer::onResolveCCBCCMenuSelector(CCObject * pTarget, CCString * pSelectorName) {
|
2012-06-14 05:19:13 +08:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2012-06-14 15:01:01 +08:00
|
|
|
SEL_CCControlHandler HelloCocosBuilderLayer::onResolveCCBCCControlSelector(CCObject * pTarget, CCString * pSelectorName) {
|
2012-06-14 05:19:13 +08:00
|
|
|
if(pTarget == this) {
|
2012-06-14 15:01:01 +08:00
|
|
|
if(strcmp(pSelectorName->getCString(), "onMenuTestClicked") == 0) {
|
2012-06-14 05:19:13 +08:00
|
|
|
return cccontrol_selector(HelloCocosBuilderLayer::onMenuTestClicked);
|
2012-06-14 15:01:01 +08:00
|
|
|
} else if(strcmp(pSelectorName->getCString(), "onSpriteTestClicked") == 0) {
|
2012-06-14 05:19:13 +08:00
|
|
|
return cccontrol_selector(HelloCocosBuilderLayer::onSpriteTestClicked);
|
2012-06-14 15:01:01 +08:00
|
|
|
} else if(strcmp(pSelectorName->getCString(), "onButtonTestClicked") == 0) {
|
2012-06-14 05:19:13 +08:00
|
|
|
return cccontrol_selector(HelloCocosBuilderLayer::onButtonTestClicked);
|
2012-06-14 15:01:01 +08:00
|
|
|
} else if(strcmp(pSelectorName->getCString(), "onLabelTestClicked") == 0) {
|
2012-06-14 05:19:13 +08:00
|
|
|
return cccontrol_selector(HelloCocosBuilderLayer::onLabelTestClicked);
|
2012-06-14 15:01:01 +08:00
|
|
|
} else if(strcmp(pSelectorName->getCString(), "onParticleSystemTestClicked") == 0) {
|
2012-06-14 05:19:13 +08:00
|
|
|
return cccontrol_selector(HelloCocosBuilderLayer::onParticleSystemTestClicked);
|
2012-06-14 15:01:01 +08:00
|
|
|
} else if(strcmp(pSelectorName->getCString(), "onScrollViewTestClicked") == 0) {
|
2012-06-14 05:19:13 +08:00
|
|
|
return cccontrol_selector(HelloCocosBuilderLayer::onScrollViewTestClicked);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2012-06-14 15:01:01 +08:00
|
|
|
bool HelloCocosBuilderLayer::onAssignCCBMemberVariable(CCObject * pTarget, CCString * pMemberVariableName, CCNode * pNode) {
|
2012-06-14 05:19:13 +08:00
|
|
|
if(pTarget == this) {
|
2012-06-14 15:01:01 +08:00
|
|
|
if(strcmp(pMemberVariableName->getCString(), "mBurstSprite") == 0) {
|
2012-06-14 05:19:13 +08:00
|
|
|
this->mBurstSprite = dynamic_cast<CCSprite *>(pNode);
|
|
|
|
CC_ASSERT(this->mBurstSprite);
|
|
|
|
this->mBurstSprite->retain();
|
|
|
|
return true;
|
2012-06-14 15:01:01 +08:00
|
|
|
} else if(strcmp(pMemberVariableName->getCString(), "mTestTitleLabel") == 0) {
|
2012-06-14 05:19:13 +08:00
|
|
|
this->mTestTitleLabelTTF = dynamic_cast<CCLabelTTF *>(pNode);
|
|
|
|
CC_ASSERT(this->mTestTitleLabelTTF);
|
|
|
|
this->mTestTitleLabelTTF->retain();
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void HelloCocosBuilderLayer::onMenuTestClicked(CCObject * pSender, cocos2d::extension::CCControlEvent pCCControlEvent) {
|
2012-06-14 16:32:52 +08:00
|
|
|
CCLog("onMenuTestClicked\n");
|
2012-06-14 05:19:13 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
void HelloCocosBuilderLayer::onSpriteTestClicked(CCObject * pSender, cocos2d::extension::CCControlEvent pCCControlEvent) {
|
2012-06-14 16:32:52 +08:00
|
|
|
CCLog("onSpriteTestClicked\n");
|
2012-06-14 05:19:13 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
void HelloCocosBuilderLayer::onButtonTestClicked(CCObject * pSender, cocos2d::extension::CCControlEvent pCCControlEvent) {
|
2012-06-14 16:32:52 +08:00
|
|
|
CCLog("onButtonTestClicked\n");
|
2012-06-14 05:19:13 +08:00
|
|
|
this->openTest("ccb/ButtonTest.ccbi", "ButtonTestLayer", ButtonTestLayerLoader::loader());
|
|
|
|
}
|
|
|
|
|
|
|
|
void HelloCocosBuilderLayer::onLabelTestClicked(CCObject * pSender, cocos2d::extension::CCControlEvent pCCControlEvent) {
|
2012-06-14 16:32:52 +08:00
|
|
|
CCLog("onLabelTestClicked\n");
|
2012-06-14 05:19:13 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
void HelloCocosBuilderLayer::onParticleSystemTestClicked(CCObject * pSender, cocos2d::extension::CCControlEvent pCCControlEvent) {
|
2012-06-14 16:32:52 +08:00
|
|
|
CCLog("onParticleSystemTestClicked\n");
|
2012-06-14 05:19:13 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
void HelloCocosBuilderLayer::onScrollViewTestClicked(CCObject * pSender, cocos2d::extension::CCControlEvent pCCControlEvent) {
|
2012-06-14 16:32:52 +08:00
|
|
|
CCLog("onScrollViewTestClicked\n");
|
2012-06-14 05:19:13 +08:00
|
|
|
}
|