【Cocos2D-X 遊戲引擎】初窺門徑(2) 場景的切換及特效

在上節的基礎上,看看怎麼實現場景的切換。

添加一個場景WelcomeScene

#include "WelcomeScene.h"
#include "GameScene.h"

using namespace cocos2d;

CCScene* WelcomeScene::scene()
{
	CCScene * scene = NULL;
	do
	{
		scene=CCScene::create();

		WelcomeScene* gameScene=WelcomeScene::create();
		scene->addChild(gameScene);


	}while(0);

	return scene;
}

bool WelcomeScene::init()
{
	this->setTouchEnabled(true);
	bool bRet = false;
	do
	{
		CCSprite* pMap = CCSprite::create("welcome_bg.png");
		CCSize size = CCDirector::sharedDirector()->getWinSize();
		pMap->setPosition(ccp(size.width/2, size.height/2));
		this->addChild(pMap, 0);

		CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
			"StartGameNormal.png",
			"StartGamePressed.png",
			this,
			menu_selector(WelcomeScene::menuStartCallback));
		CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);
		pMenu->setPosition(size.width/2,size.height/2);
		this->addChild(pMenu, 1);
			
	}while(0);

	bRet=true;

	return bRet;
}


void WelcomeScene::menuStartCallback(CCObject* pSender)
{
	CCScene * scene=GameScene::scene();
	CCDirector::sharedDirector()->replaceScene(scene);
}
在menuStartCallback()中通過導演來切換場景。


使用特效:

CCDirector::sharedDirector()->replaceScene((CCTransitionSlideInR::create(1, scene)));


網上找的特效:

CCTransitionJumpZoom::transitionWithDuration(t, s);//跳躍式,本場景先會縮小,然後跳躍進來

CCTransitionFade::transitionWithDuration(t, s);//淡出淡入,原場景淡出,新場景淡入

CCTransitionFade::transitionWithDuration(t, s, ccWHITE);//如果上一個的函數,帶3個參數,則第三個參數就是淡出淡入的顏色

CCTransitionFlipX::transitionWithDuration(t, s, kOrientationLeftOver);//x軸左翻

CCTransitionFlipX::transitionWithDuration(t, s, kOrientationRightOver);//x軸右翻

CCTransitionFlipY::transitionWithDuration(t, s, kOrientationUpOver);//y軸上翻

CCTransitionFlipY::transitionWithDuration(t, s, kOrientationDownOver);//y軸下翻

CCTransitionFlipAngular::transitionWithDuration(t, s, kOrientationLeftOver);//有角度轉的左翻

CCTransitionFlipAngular::transitionWithDuration(t, s, kOrientationRightOver);//有角度轉的右翻

CCTransitionZoomFlipX::transitionWithDuration(t, s, kOrientationLeftOver);//帶縮放效果x軸左翻

CCTransitionZoomFlipX::transitionWithDuration(t, s, kOrientationRightOver);//帶縮放效果x軸右翻

CCTransitionZoomFlipY::transitionWithDuration(t, s, kOrientationUpOver);//帶縮放效果y軸上翻

CCTransitionZoomFlipY::transitionWithDuration(t, s, kOrientationDownOver);//帶縮放效果y軸下翻 

CCTransitionZoomFlipAngular::transitionWithDuration(t, s, kOrientationLeftOver);//帶縮放效果/有角度轉的左翻

CCTransitionZoomFlipAngular::transitionWithDuration(t, s, kOrientationRightOver);//帶縮放效果有角度轉的右翻

CCTransitionShrinkGrow::transitionWithDuration(t, s);//交錯換

CCTransitionRotoZoom::transitionWithDuration(t, s);//轉角換

CCTransitionMoveInL::transitionWithDuration(t, s);//新場景從左移入覆蓋

CCTransitionMoveInR::transitionWithDuration(t, s);//新場景從右移入覆蓋

CCTransitionMoveInT::transitionWithDuration(t, s);//新場景從上移入覆蓋

CCTransitionMoveInB::transitionWithDuration(t, s);//新場景從下移入覆蓋

CCTransitionSlideInL::transitionWithDuration(t, s);//場景從左移入推出原場景

CCTransitionSlideInR::transitionWithDuration(t, s);//場景從右移入推出原場景

CCTransitionSlideInT::transitionWithDuration(t, s);//場景從上移入推出原場景

CCTransitionSlideInB::transitionWithDuration(t, s);//場景從下移入推出原場景

以下三個需要檢測opengl版本是否支持CCConfiguration::sharedConfiguration()->getGlesVersion() <= GLES_VER_1_0如果爲真則爲不支持

CCTransitionCrossFade::transitionWithDuration(t,s);//淡出淡入交叉,同時進行

CCTransitionRadialCCW::transitionWithDuration(t,s);//時針切入

CCTransitionRadialCW::transitionWithDuration(t,s);//時針切入

以下兩個需要先設置攝像機,使用CCDirector::sharedDirector()->setDepthTest(true);

CCTransitionPageTurn::transitionWithDuration(t, s, false);//翻頁,前翻

CCTransitionPageTurn::transitionWithDuration(t, s, true);//翻頁,後翻

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);//按列切




轉載請註明出處:http://blog.csdn.net/Vestigge

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章