Quantcast
Channel: cocos2d-x - Cocos Forums
Viewing all articles
Browse latest Browse all 2748

[SOLVED]Enter level scene blink

$
0
0

@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

Read full topic


Viewing all articles
Browse latest Browse all 2748