第一個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