现在的位置: 首页 > 综合 > 正文

cocos2D中HelloWorldScene.h和HelloWorldScene.cpp

2012年12月03日 ⁄ 综合 ⁄ 共 2342字 ⁄ 字号 评论关闭

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();
}

以上

 

抱歉!评论已关闭.