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

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

2013-05-25 10:53 495 查看

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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IOS cocos2D