Created
May 5, 2015 05:32
-
-
Save yasuharu519/12f3adda60dded3acddd to your computer and use it in GitHub Desktop.
Cocos2d-x プールアロケータ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "HelloWorldScene.h" | |
USING_NS_CC; | |
cocos2d::allocator::AllocatorStrategyPool<HelloWorld> HelloWorld::allocator_pool{"HelloWorldPool"}; | |
Scene* HelloWorld::createScene() | |
{ | |
auto scene = Scene::create(); | |
auto layer = HelloWorld::create(); | |
scene->addChild(layer); | |
return scene; | |
} | |
bool HelloWorld::init() | |
{ | |
if ( !Layer::init() ) | |
{ | |
return false; | |
} | |
Size visibleSize = Director::getInstance()->getVisibleSize(); | |
Vec2 origin = Director::getInstance()->getVisibleOrigin(); | |
auto closeItem = MenuItemImage::create( | |
"CloseNormal.png", | |
"CloseSelected.png", | |
CC_CALLBACK_1(HelloWorld::menuCloseCallback, this)); | |
closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 , | |
origin.y + closeItem->getContentSize().height/2)); | |
auto menu = Menu::create(closeItem, NULL); | |
menu->setPosition(Vec2::ZERO); | |
this->addChild(menu, 1); | |
auto label = Label::createWithTTF("Hello World", "fonts/Marker Felt.ttf", 24); | |
label->setPosition(Vec2(origin.x + visibleSize.width/2, | |
origin.y + visibleSize.height - label->getContentSize().height)); | |
this->addChild(label, 1); | |
auto sprite = Sprite::create("HelloWorld.png"); | |
sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); | |
this->addChild(sprite, 0); | |
return true; | |
} | |
void HelloWorld::menuCloseCallback(Ref* pSender) | |
{ | |
Director::getInstance()->end(); | |
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) | |
exit(0); | |
#endif | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef __HELLOWORLD_SCENE_H__ | |
#define __HELLOWORLD_SCENE_H__ | |
#include "cocos2d.h" | |
#include "base/allocator/CCAllocatorStrategyPool.h" | |
#include "base/allocator/CCAllocatorMacros.h" | |
class HelloWorld : public cocos2d::Layer | |
{ | |
public: | |
// there's no 'id' in cpp, so we recommend returning the class instance pointer | |
static cocos2d::Scene* createScene(); | |
// Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone | |
virtual bool init(); | |
// a selector callback | |
void menuCloseCallback(cocos2d::Ref* pSender); | |
static cocos2d::allocator::AllocatorStrategyPool<HelloWorld> allocator_pool; | |
CC_USE_ALLOCATOR_POOL(HelloWorld, allocator_pool); | |
// implement the "static create()" method manually | |
static HelloWorld* create() | |
{ | |
HelloWorld *pRet = new HelloWorld(); | |
if (pRet && pRet->init()) | |
{ | |
pRet->autorelease(); | |
return pRet; | |
} | |
else | |
{ | |
delete pRet; | |
pRet = NULL; | |
return NULL; | |
} | |
} | |
}; | |
#endif // __HELLOWORLD_SCENE_H__ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment