화면 전환하기
c++)
화면A
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #include "test156.hpp" #include "GameScene.hpp" USING_NS_CC; Scene* Test156::createScene() { auto scene = Scene::create(); auto layer = Test156::create(); scene->addChild(layer); return scene; } bool Test156::init() { //현재 화면 배경색은 파랑색 if ( !LayerColor::initWithColor(Color4B(0, 0, 255, 255))) { return false; } //MenuItemFont::create(메뉴명, 메뉴 클릭시 실행되는 콜백함수) auto item1 = MenuItemFont::create("Replace Scene", CC_CALLBACK_1(Test156::replaceScene, this)); auto item2 = MenuItemFont::create("Push Scene", CC_CALLBACK_1(Test156::pushScene, this)); auto item3 = MenuItemFont::create("Pop Scene", CC_CALLBACK_1(Test156::popScene, this)); auto menu = Menu::create(item1, item2, item3, NULL); menu->alignItemsVertically(); this->addChild(menu); return true; } //화면전환 //Director::getInstance()->replaceScene(넘어갈려는 화면) //replaceScene : 새로운 화면을 생성하고 이전화면은 메모리에서 해제한다 //pushScene : 화면전환시 이전에 있었던 화면은 그대로 있고 새로운 화면이 보인다 //popScene : 현재화면을 메모리에서 해제하여 이전 화면을 보인다 void Test156::replaceScene(Ref *sender){ Director::getInstance()->replaceScene(GameScene::createScene()); } void Test156::pushScene(Ref *sender){ Director::getInstance()->pushScene(GameScene::createScene()); } void Test156::popScene(Ref *sender){ Director::getInstance()->popScene(); } | cs |
화면B
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #include "GameScene.hpp" #include "test156.hpp" USING_NS_CC; Scene* GameScene::createScene() { auto scene = Scene::create(); auto layer = GameScene::create(); scene->addChild(layer); return scene; } bool GameScene::init() { if ( !Layer::init()) { return false; } //MenuItemFont::create(메뉴명, 메뉴 클릭시 실행되는 콜백함수) auto item = MenuItemFont::create("Test156 Scene", CC_CALLBACK_1(GameScene::pushScene, this)); auto menu = Menu::create(item, NULL); menu->alignItemsHorizontally(); this->addChild(menu); return true; } void GameScene::pushScene(Ref *sender){ Director::getInstance()->pushScene(Test156::createScene()); } | cs |
결과
메뉴를 클릭하면 두화면이 전환된다
'IT > - 프로그래밍' 카테고리의 다른 글
Cocos 화면 전환 효과 적용하기 (0) | 2017.03.05 |
---|---|
OpenCV 이미지 정보 가져오기 (IPlImage 구조체 사용) (0) | 2017.03.04 |
Cocos 특정메서드를 호출하는 함수 (0) | 2017.03.02 |
Cocos 공이 튕기는 듯한 이즈액션 (0) | 2017.03.01 |
Cocos 뒤로 이동하는 이즈액션 (0) | 2017.02.28 |