@jecheonDaeseong wrote:
I created 3 scene level, Splash Scene -> Product Scene -> Main Menu Scene, but when entering new scene there's little annoying blink animation
Splash Scene#include "SplashScreen.hpp" #include "ProductScene.hpp" #include "MainMenu.hpp" #include "SimpleAudioEngine.h" USING_NS_CC; using namespace cocos2d; using namespace CocosDenshion; Scene* SplashScreen::createScene() { auto scene = Scene::create(); auto layer = SplashScreen::create(); scene->addChild(layer); return scene; } bool SplashScreen::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); //SimpleAudioEngine::getInstance()->playBackgroundMusic("bgMain.mp3", true); this->schedule(schedule_selector(SplashScreen::goToProductScene), 2); auto backgroundSprite = Sprite::create("raionlogo.png"); backgroundSprite->setPosition(Vec2(visibleSize.width / 2, visibleSize.height/2)); this->addChild(backgroundSprite); return true; } void SplashScreen::goToProductScene(float dt) { auto scene = ProductScene::createScene(); Director::getInstance()->pushScene(TransitionFade::create(2, scene)); }
Product Scene
#include "ProductScene.hpp" #include "MainMenu.hpp" #include "SimpleAudioEngine.h" #include "SplashScreen.hpp" USING_NS_CC; using namespace cocos2d; using namespace CocosDenshion; Scene* ProductScene::createScene() { auto scene = Scene::create(); auto layer = ProductScene::create(); scene->addChild(layer); return scene; } bool ProductScene::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); this->schedule(schedule_selector(ProductScene::goToMainMenuScene), 2); auto backgroundSprite = Sprite::create("product.png"); backgroundSprite->setPosition(Vec2(visibleSize.width / 2, visibleSize.height/2)); this->addChild(backgroundSprite); return true; } void ProductScene::goToMainMenuScene(float dt) { auto scene = MainMenu::createScene(); Director::getInstance()->pushScene(TransitionFade::create(2, scene)); }
Main Menu Scene
#include "ProductScene.hpp" #include "SplashScreen.hpp" #include "MainMenu.hpp" #include "GameLayer.h" #include "ui/CocosGUI.h" using namespace cocos2d; Scene* MainMenu::createScene() { auto scene = Scene::create(); auto layer = MainMenu::create(); scene->addChild(layer); return scene; } bool MainMenu::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); auto mainMenuBg = Sprite::create("bgmainmenu.png"); mainMenuBg->setPosition(Vec2(visibleSize.width * 0.5, visibleSize.height * 0.5)); this->addChild(mainMenuBg); auto title = Sprite::create("logo.png"); title->setPosition(Vec2(visibleSize.width * 0.5, visibleSize.height * 0.8)); this->addChild(title); auto playItem = MenuItemImage::create("PLAY.png", "play clicked.png", CC_CALLBACK_1(MainMenu::goToGameScene, this)); playItem->setPosition(Vec2(visibleSize.width * 0.5, visibleSize.height * 0.6)); auto optionItem = MenuItemImage::create("OPTION.png", "play clicked.png", CC_CALLBACK_1(MainMenu::goToGameScene, this)); optionItem->setPosition(Vec2(visibleSize.width * 0.5, visibleSize.height * 0.45)); auto scoreItem = MenuItemImage::create("SCORE.png", "play clicked.png", CC_CALLBACK_1(MainMenu::goToGameScene, this)); scoreItem->setPosition(Vec2(visibleSize.width * 0.5, visibleSize.height * 0.30)); auto exitItem = MenuItemImage::create("EXIT.png", "play clicked.png", CC_CALLBACK_1(MainMenu::goToGameScene, this)); exitItem->setPosition(Vec2(visibleSize.width * 0.5, visibleSize.height * 0.15)); auto menu = Menu::create(playItem,optionItem,scoreItem,exitItem, NULL); menu->setPosition(Point::ZERO); this->addChild(menu); return true; } void MainMenu::goToGameScene(cocos2d::Ref *pSender) { auto scene = GameLayer::scene(); Director::getInstance()->replaceScene(TransitionFade::create(2, scene)); }
anyone can help me ?
Posts: 3
Participants: 2