Cocos 2 D-Xノート(2)シーンの切り替えと特効
前節の基礎の上で、どのようにシーンの切り替えを実現するかを見てみましょう.
シーンを追加
WelcomeScene.h
WelcomeScene.cpp
ネットで探した特効:
CCTransitionJumpZoom::create(t, s);//ジャンプ式、このシーンはまず縮小して、それからジャンプして入ります
CCTransitionFade::create(t, s);//フェードアウトフェードイン、元のシーンフェードアウト、新しいシーンフェードイン
CCTransitionShrinkGrow::create(t, s);//ちどりへんかん
CCTransitionRotoZoom::create(t, s);//かくてんかん
CCTransitionMoveInL::create(t, s);//新しいシーンを左からオーバーライドに移動
CCTransitionMoveInR::create(t, s);//新しいシーンを右からオーバーライドに移動
CCTransitionMoveInT::create(t, s);//新しいシーンを上からオーバーライドに移動
CCTransitionMoveInB::create(t, s);//新しいシーンを下からオーバーライドに移動
CCTransitionSlideInL::create(t, s);//シーンを左から元のシーンに移動
CCTransitionSlideInR::create(t, s);//シーンを右から移動して元のシーンを押し出します
CCTransitionSlideInT::create(t, s);//シーンを上から移動して元のシーンを押し出します
CCTransitionSlideInB::create(t, s);//シーンを下から移動して元のシーンを押し出します
CCTransitionFadeTR::transitionWithDuration(t, s);//波を右に上げる
CCTransitionFadeBL::transitionWithDuration(t, s);//波を左に落とす
CCTransitionFadeUp::transitionWithDuration(t, s);//シャッターを上げる
CCTransitionFadeDown::transitionWithDuration(t, s);//ダウンブラインド
CCTransitionTurnOffTiles::transitionWithDuration(t, s);//ランダムキューブ
CCTransitionSplitRows::transitionWithDuration(t, s);//行単位で切り取る
CCTransitionSplitCols::transitionWithDuration(t, s);//列ごとに切り取る
シーンを追加
WelcomeScene.h
#pragma once
#include "cocos2d.h"
USING_NS_CC;
class WelcomeScene :
public CCLayer
{
public:
WelcomeScene(void);
~WelcomeScene(void);
virtual bool init();
static CCScene* scene();
CREATE_FUNC(WelcomeScene);
void menuOKCallback(CCObject *pSender);
};
WelcomeScene.cpp
#include "WelcomeScene.h"
#include "GameScene.h"
WelcomeScene::WelcomeScene(void){}
WelcomeScene::~WelcomeScene(void){}
CCScene* WelcomeScene::scene()
{
CCScene* scene = CCScene::create();
WelcomeScene* welcomeScene = WelcomeScene::create();
scene->addChild(welcomeScene);
return scene;
}
bool WelcomeScene::init()
{
if(!CCLayer::init())
{
return false;
}
CCSize size = CCDirector::sharedDirector()->getWinSize();
//
CCSprite* welcomeBg = CCSprite::create("welcome_bg.png");
welcomeBg->setPosition(ccp(size.width / 2, size.height / 2));
this->addChild(welcomeBg, 0);
CCMenuItemImage* okItem = CCMenuItemImage::create(
"ok_normal.png",
"ok_pressed.png",
this,
menu_selector(WelcomeScene::menuOKCallback)
);
CCMenu* menu = CCMenu::create(okItem,NULL);
menu->setAnchorPoint(ccp(1.0f, 0.0f));
menu->setPosition(ccp(size.width - okItem->getContentSize().width,
okItem->getContentSize().height));
this->addChild(menu);
return true;
}
void WelcomeScene::menuOKCallback(CCObject *pSender)
{
CCScene* scene = GameScene::scene();
CCTransitionFadeTR* txScene = CCTransitionFadeTR::create(1.2, scene);
CCDirector::sharedDirector()->replaceScene(txScene);
}
ネットで探した特効:
CCTransitionJumpZoom::create(t, s);//ジャンプ式、このシーンはまず縮小して、それからジャンプして入ります
CCTransitionFade::create(t, s);//フェードアウトフェードイン、元のシーンフェードアウト、新しいシーンフェードイン
CCTransitionShrinkGrow::create(t, s);//ちどりへんかん
CCTransitionRotoZoom::create(t, s);//かくてんかん
CCTransitionMoveInL::create(t, s);//新しいシーンを左からオーバーライドに移動
CCTransitionMoveInR::create(t, s);//新しいシーンを右からオーバーライドに移動
CCTransitionMoveInT::create(t, s);//新しいシーンを上からオーバーライドに移動
CCTransitionMoveInB::create(t, s);//新しいシーンを下からオーバーライドに移動
CCTransitionSlideInL::create(t, s);//シーンを左から元のシーンに移動
CCTransitionSlideInR::create(t, s);//シーンを右から移動して元のシーンを押し出します
CCTransitionSlideInT::create(t, s);//シーンを上から移動して元のシーンを押し出します
CCTransitionSlideInB::create(t, s);//シーンを下から移動して元のシーンを押し出します
CCTransitionFadeTR::transitionWithDuration(t, s);//波を右に上げる
CCTransitionFadeBL::transitionWithDuration(t, s);//波を左に落とす
CCTransitionFadeUp::transitionWithDuration(t, s);//シャッターを上げる
CCTransitionFadeDown::transitionWithDuration(t, s);//ダウンブラインド
CCTransitionTurnOffTiles::transitionWithDuration(t, s);//ランダムキューブ
CCTransitionSplitRows::transitionWithDuration(t, s);//行単位で切り取る
CCTransitionSplitCols::transitionWithDuration(t, s);//列ごとに切り取る