714
技術社區[雲棲]
第一個Hello world(1)
把新創建的空項目中的HelloworldScene類刪除掉,自己寫一個.
一步步學習,不能投機取巧,先從最簡單的hello world開始!
#ifndef __HelloCpp__LoadingLayer__
#define __HelloCpp__LoadingLayer__
#include "cocos2d.h"
/** @brief 遊戲啟動層類
*
* 遊戲啟動會創建此類對象,通過工廠方法創建一個場景,並將自己(層)加入到場景中
*/
class LoadingLayer : public cocos2d::CCLayer
{
public:
// 初始化函數
virtual bool init();
// 工廠方法,生成場景對象
static cocos2d::CCScene * scene();
// 關閉菜單的回調
void menuCloseCallback(CCObject *pSender);
// 靜態創建類對象
static LoadingLayer * create();
};
#endif /* defined(__HelloCpp__LoadingLayer__) */
#include "LoadingLayer.h"
USING_NS_CC;
CCScene * LoadingLayer::scene()
{
// 使用工廠方法生成scene
CCScene *pScene = CCScene::create();
// 使用工廠方法生成啟動層對象
LoadingLayer *pLayer = LoadingLayer::create();
// 把啟動層對象加入到場景中
pScene->addChild(pLayer);
return pScene;
}
bool LoadingLayer::init()
{
if (!CCLayer::init()) {
return false;
}
CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
// 添加圖片菜單項
CCMenuItemImage *pCloseItem = CCMenuItemImage::create("CloseNormal.png",
"CloseSelected.png",
this,
menu_selector(LoadingLayer::menuCloseCallback));
// 設置菜單項在屏幕的位置
pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width / 2,
origin.y + pCloseItem->getContentSize().height / 2));
// 創建菜單並添加到層中
CCMenu *pMenu = CCMenu::create(pCloseItem, NULL);
pMenu->setPosition(CCPointZero);
this->addChild(pMenu, 1);
// 創建標題
CCLabelTTF *pLabel = CCLabelTTF::create("Hello World", "Arial", 24);
pLabel->setPosition(ccp(origin.x + visibleSize.width / 2,
origin.y + visibleSize.height / 2));
this->addChild(pLabel, 1);
// 添加精靈
CCSprite *pSprite = CCSprite::create("HelloWorld.png");
pSprite->setPosition(ccp(visibleSize.width / 2 + origin.x,
visibleSize.height / 2 + origin.y));
this->addChild(pSprite, 0);
return true;
}
LoadingLayer * LoadingLayer::create()
{
LoadingLayer *pRet = new LoadingLayer();
if (pRet && pRet->init()) {
pRet->autorelease();
return pRet;
}
delete pRet;
pRet = NULL;
return NULL;
}
void LoadingLayer::menuCloseCallback(cocos2d::CCObject *pSender)
{
CCDirector::sharedDirector()->end();
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
exit(0);
#endif
return;
}
最後更新:2017-04-03 12:56:06