您的位置:首页 > 移动开发 > Cocos引擎

cocos2d hello world

2013-11-25 19:29 337 查看
StartScene.cpp

CCScene* Start::scene()
{
CCScene * scene = NULL;
do
{
// 'scene' is an autorelease object
scene = CCScene::create();
CC_BREAK_IF(! scene);

// 'layer' is an autorelease object
Start *layer = Start::create();
CC_BREAK_IF(! layer);

// add layer as a child to scene
scene->addChild(layer);
} while (0);

// return the scene
return scene;
}

bool Start::init()
{
bool bRet = false;
do
{

CC_BREAK_IF(! CCLayer::init());

//CCTouchDispatcher::addTargetedDelegate(this,kCCMenuMousePriority,true);

CCSize size = CCDirector::sharedDirector()->getWinSize();

CCSprite *bg = CCSprite::createWithSpriteFrameName("start_bg.png");
bg->setContentSize(size);
bg->setPosition(ccp(size.width/2,size.height/2));
this->addChild(bg,1);

CCSprite *rabit = CCSprite::createWithSpriteFrameName("start_rabbit_1.png");
rabit->setContentSize(CCSize(100,100));
rabit->setPosition(ccp(150,150));
this->addChild(rabit,2);

CCLabelTTF* pLabel = CCLabelTTF::create("Edragonrise", "微软雅黑", 24);
CC_BREAK_IF(! pLabel);
pLabel->setPosition(ccp(size.width / 2, size.height - 50));

ccColor3B c0;
c0.r=255;
c0.g=255;
c0.b=0;
pLabel->setColor(c0);
this->addChild(pLabel, 2);

bRet = true;

} while (0);

return bRet;
};

void Start::enterAdWall(){

}
void Start::QueryScore(){

}
void Start::ReduceScore(){

}


LoadScene.cpp

#include "LoadScene.h"
#include "HelloWorldScene.h"
#include "StartScene.h"

using namespace cocos2d;

int printIndex;
CCLabelTTF* lblGuide;
CCSprite *loadSprite;
CCSprite *logo;
CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache();

CCScene* Load::scene()
{
CCScene * scene = NULL;
do
{
// 'scene' is an autorelease object
scene = CCScene::create();
CC_BREAK_IF(! scene);

// 'layer' is an autorelease object
Load *layer = Load::create();
CC_BREAK_IF(! layer);

// add layer as a child to scene
scene->addChild(layer);
} while (0);

// return the scene
return scene;
}

bool Load::init()
{
bool bRet = false;
do
{

CC_BREAK_IF(! CCLayer::init());

CCLabelTTF* pLabel = CCLabelTTF::create(G2U("Edragonrise 龙腾云网"), "微软雅黑", 24);
CC_BREAK_IF(! pLabel);

size = CCDirector::sharedDirector()->getWinSize();
pLabel->setPosition(ccp(size.width / 2, size.height - 50));

ccColor3B c0;
c0.r=255;
c0.g=255;
c0.b=0;
pLabel->setColor(c0);
this->addChild(pLabel, 1);

loadSprite=CCSprite::createWithSpriteFrameName("loading_1.png");
this->addChild(loadSprite,2);
loadSprite->setPosition(ccp(size.width/2+20, 20));

int animateNum = 4;
char tmp[50];
CCArray *array = CCArray::create();
for (int i = 0; i < animateNum; i++)
{
sprintf(tmp,"loading_%d.png",i+1);
CCSpriteFrame *frame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(tmp);
array->addObject(frame);
}
//CCActionInterval
CCAnimation *animation = CCAnimation::createWithSpriteFrames(array,0.3f);
CCAnimate *animate = CCAnimate::create(animation);
loadSprite->runAction(CCRepeatForever::create(animate));

logo=CCSprite::create("logo.png");
logo->setPosition(ccp(size.width/2, size.height/2));
this->addChild(logo,1);

Load::showNowTime("init:1");
scheduleOnce(schedule_selector(Load::loadResouces),3.0f);
Load::showNowTime("init:2");

//CCActionInterval *ac1 = CCFadeOut::create(1.5f);
//CCCallFunc *ac2=;
/*
CCFiniteTimeAction *action = CCSequence::create(
//CCCallFunc::create(this,callfunc_selector(Load::loadResouces)),
CCFadeOut::create(1.5f),
CCCallFunc::create(this,callfunc_selector(Load::gotoBegin)),
NULL);
logo->runAction(action);
*/
//logo->runAction(CCFadeOut::create(1.5f));

bRet = true;
} while (0);

return bRet;
}

char* Load::G2U(const char* gb2312)
{
int len = MultiByteToWideChar(CP_ACP, 0, gb2312, -1, NULL, 0);
wchar_t* wstr = new wchar_t[len+1];
memset(wstr, 0, len+1);
MultiByteToWideChar(CP_ACP, 0, gb2312, -1, wstr, len);
len = WideCharToMultiByte(CP_UTF8, 0, wstr, -1, NULL, 0, NULL, NULL);
char* str = new char[len+1];
memset(str, 0, len+1);
WideCharToMultiByte(CP_UTF8, 0, wstr, -1, str, len, NULL, NULL);
if(wstr) delete[] wstr;
return str;
}

void Load::gotoBegin()
{
Load::showNowTime("gotoBegin:1");
lblGuide = CCLabelTTF::create("", "微软雅黑", 24);
printIndex = 0;
this->schedule(schedule_selector(Load::print),0.1f);
lblGuide->setColor(ccWHITE);
//lblGuide->setAnchorPoint(ccp(0,0));
lblGuide->setPosition(ccp(size.width/2,size.height/2));
//lblGuide->setDimensions(CCSize(size.width,90));
this->addChild(lblGuide, 5);

CCLabelTTF *swip = CCLabelTTF::create(G2U("跳过"), "STXINGKA.ttf", 22);
CCMenuItemLabel *menu = CCMenuItemLabel::create(swip,this,menu_selector(Load::gotoStart));
CCMenu *startMenu=CCMenu::create(menu,NULL);
startMenu->setPosition(ccp(size.width-80,50));
this ->addChild(startMenu,2);

CCActionInterval* a2=CCScaleTo::create(0.3f,1.3f);
CCActionInterval* a3=CCScaleTo::create(0.3f,1.0f);
CCActionInterval* a4=CCScaleTo::create(0.3f,1.3f);
CCActionInterval* a5=CCScaleTo::create(0.3f,1.0f);
CCActionInterval *a6 = CCSequence::create(CCDelayTime::create(1.0f), a2,a3,a4,a5,NULL);
/*
CCFiniteTimeAction *action2 = CCSequence::create(
CCRepeat::create(a6,3.0f),
CCCallFunc::create(this,callfunc_selector(Load::gotoStart)),
NULL);
*/
menu->runAction(CCRepeatForever::create(a6));
//menu->runAction(CCRepeatForever::create(a6,3.0f));

/*
CCMenuItemImage *select=CCMenuItemImage::create("p0.png",
"p1.png",
this,
menu_selector(Load::selectGame)
);

CCSize selectSize=select->getContentSize();

select->setPosition(ccp(230,145));

CCMenu *menu=CCMenu::create(select,NULL);

menu->setPosition(ccp(0,0));
this ->addChild(menu,1);
*/

}

void Load::gotoStart(CCObject* pSender)
{
//[[SimpleAudioEngine sharedEngine] playEffect:@"button.m4a"];
//CCTransitionScene *ts = [CCTransitionFade transitionWithDuration:1.0f scene:[Start scene] withColor:ccBLACK];
//[[CCDirector sharedDirector] replaceScene:ts];
Load::showNowTime("gotoStar:1");
CCScene *s=Start::scene();
CCDirector::sharedDirector()->replaceScene(CCTransitionFade::create(1.5f, s));

}

void Load::loadResouces(float dt)
{
/*
struct tm *tm;
time_t timep;
time(&timep);
tm = localtime(&timep);
*/
Load::showNowTime("loadResoucees:1");
cache->addSpriteFramesWithFile("platform.plist");
cache->addSpriteFramesWithFile("platform2.plist");
cache->addSpriteFramesWithFile("platform3.plist");
cache->addSpriteFramesWithFile("bg.plist");
Load::showNowTime("loadResoucees:2");
this->removeChild(loadSprite);
Load::showNowTime("init:3");

CCFiniteTimeAction *action = CCSequence::create(
CCFadeOut::create(1.5f),
CCCallFunc::create(this,callfunc_selector(Load::gotoBegin)),
NULL);
logo->runAction(action);
Load::showNowTime("init:4");
}

void Load::print(float interval)
{
printIndex++;
std::string txt="Hello world \n I want play a game !";
int maxPrint=txt.length();
lblGuide->setString(txt.substr(0,printIndex).c_str());
//CCLog(txt.substr(0,printIndex).c_str());
if(printIndex>=maxPrint)
{
unschedule(schedule_selector(Load::print));
}

}

void Load::showNowTime(char* para){
struct timeval tv;
gettimeofday(&tv,NULL);
long haomiaos=tv.tv_sec * 1000 + tv.tv_usec/1000;
char string[25];
char* ch;
ch = ltoa(haomiaos, string,10);
CCLog(para);
CCLog(ch);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: