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(); }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。