mirror of https://github.com/axmolengine/axmol.git
65 lines
1.6 KiB
C++
65 lines
1.6 KiB
C++
#include "DemoScene.h"
|
|
#include "MenuScene.h"
|
|
|
|
USING_NS_AX;
|
|
|
|
bool DemoScene::init()
|
|
{
|
|
if (!Scene::init())
|
|
{
|
|
return false;
|
|
}
|
|
|
|
_groot = GRoot::create(this);
|
|
_groot->retain();
|
|
|
|
continueInit();
|
|
|
|
//add a closebutton to scene
|
|
GObject* closeButton = UIPackage::createObject("MainMenu", "CloseButton");
|
|
closeButton->setPosition(_groot->getWidth() - closeButton->getWidth() - 10, _groot->getHeight() - closeButton->getHeight() - 10);
|
|
closeButton->addRelation(_groot, RelationType::Right_Right);
|
|
closeButton->addRelation(_groot, RelationType::Bottom_Bottom);
|
|
closeButton->setSortingOrder(100000);
|
|
closeButton->addClickListener(AX_CALLBACK_1(DemoScene::onClose, this));
|
|
_groot->addChild(closeButton);
|
|
|
|
return true;
|
|
}
|
|
|
|
void DemoScene::continueInit()
|
|
{
|
|
}
|
|
|
|
void DemoScene::onClose(EventContext* context)
|
|
{
|
|
if (!dynamic_cast<MenuScene*>(this))
|
|
{
|
|
Director::getInstance()->replaceScene(MenuScene::create());
|
|
}
|
|
else
|
|
{
|
|
//Close the cocos2d-x game scene and quit the application
|
|
Director::getInstance()->end();
|
|
|
|
#if (AX_TARGET_PLATFORM == AX_PLATFORM_IOS)
|
|
exit(0);
|
|
#endif
|
|
|
|
/*To navigate back to native iOS screen(if present) without quitting the application ,do not use Director::getInstance()->end() and exit(0) as given above,instead trigger a custom event created in RootViewController.mm as below*/
|
|
|
|
//EventCustom customEndEvent("game_scene_close_event");
|
|
//_eventDispatcher->dispatchEvent(&customEndEvent);
|
|
}
|
|
}
|
|
|
|
DemoScene::DemoScene() :
|
|
_groot(nullptr)
|
|
{
|
|
}
|
|
|
|
DemoScene::~DemoScene()
|
|
{
|
|
AX_SAFE_RELEASE(_groot);
|
|
}
|