cocos2D中HelloWorldScene.h和HelloWorldScene.cpp的简单解释

HelloWorldScene.h

#ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__#include "cocos2d.h"class HelloWorld : public cocos2d::CCLayer{public:                                  // 这里有一个区别。“init”方法在cocos2d-x 返回 bool ,而不是返回“id”在 cocos2d-iphone    virtual bool init();                                // 没有“id”在cpp,所以我们推荐返回完全类指针    static cocos2d::CCScene* scene();                                  // 一个选择器回调    void menuCloseCallback(CCObject* pSender);    // 手动实现 "static node()" 这个方法    CREATE_FUNC(HelloWorld);};#endif  // __HELLOWORLD_SCENE_H__

HelloWorldScene.cpp

#include "HelloWorldScene.h"using namespace cocos2d;CCScene* HelloWorld::scene(){    CCScene * scene = NULL;    do    {        // “场景”是一个生成自动释放对象        scene = CCScene::create();        CC_BREAK_IF(! scene);        // “层”是一个生成自动释放对象        HelloWorld *layer = HelloWorld::create();        CC_BREAK_IF(! layer);        // 添加层作为一个孩子到场景        scene->addChild(layer);    } while (0);    // 返回现场    return scene;}// 在“init”你需要初始化您的实例bool HelloWorld::init(){    bool bRet = false;    do    {        //        // super init first        //        CC_BREAK_IF(! CCLayer::init());        //        // 下面添加你的代码……        //        // 1。添加一个菜单项以“X”的形象,这是点击退出程序。        // 创建一个“close”以关闭图标菜单项目,这是一个自动释放对象。        CCMenuItemImage *pCloseItem = CCMenuItemImage::create(            "CloseNormal.png",            "CloseSelected.png",            this,            menu_selector(HelloWorld::menuCloseCallback));        CC_BREAK_IF(! pCloseItem);        // 将菜单项右下角测试        pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20));        // 创建一个菜单,菜单上的“close”菜单项,它是一个自动释放对象。        CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);        pMenu->setPosition(CCPointZero);        CC_BREAK_IF(! pMenu);        // 添加菜单HelloWorld层作为一个孩子层。        this->addChild(pMenu, 1);        // 2。添加一个标签显示“Hello World”。        // 创建一个标签和初始化与字符串“Hello World”。        // CCLabelTTF只支持系统的字体,或者你自行添加的ttf字体        CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 30);        CC_BREAK_IF(! pLabel);        // 得到窗口的大小和位置标签上。        CCSize size = CCDirector::sharedDirector()->getWinSize();        pLabel->setPosition(ccp(size.width / 2, size.height - 50));        // 添加标签到HelloWorld层作为一个孩子层。        this->addChild(pLabel, 1);        // 3。添加添加一个启动画面,显示cocos2d飞溅的形象。        CCSprite* pSprite = CCSprite::create("snake.png");                            CC_BREAK_IF(! pSprite);        // 把精灵放在在屏幕的中心        pSprite->setPosition(ccp(size.width/2, size.height/2));        // 加入精灵到HelloWorld层作为一个孩子层。        this->addChild(pSprite, 0);        bRet = true;    } while (0);    return bRet;}void HelloWorld::menuCloseCallback(CCObject* pSender){    // "close" 菜单项点击    CCDirector::sharedDirector()->end();}