About Scene
°ÔÀÓÀº SceneÀ¸·Î ÀÌ·ïÁø´Ù. SceneÀº ¿©·¯°³ÀÇ ·¹À̾î·Î ÀÌ·ïÁø´Ù. SceneÀ» ¹Ù²Ù´Â ¹æ¹ý¿¡´Â 2°¡Áö°¡ ÀÖ´Ù.(¾Æ´Â Çѵµ ³»¿¡¼) µÎ ¹æ¹ýÀÇ Â÷ÀÌ´Â ¾ÀÀ» ¿¶§ , ´ÝÀ» ¶§ Â÷ÀÌ°¡ ÀÖ´Ù.
SceneÀ» µ¤´Â ¹æ¹ýÀº ¾ÀÀ» ¿¶§ push, ´ÝÀ» ¶§ pop ÇÑ´Ù.
SceneÀ» ±³Ã¼ÇÏ´Â ¹æ¹ýÀº replaceScene( )À¸·Î ¿¶§, ´ÝÀ» ¶§ µ¿ÀÏÇÏ°Ô »ç¿ëÇÑ´Ù.
SceneÀ» µ¤´Â ¹æ¹ýPlusScene È£Ãâ
#include "PlusScene.h"
CCScene* pScene = PlusScene::scene(); CCDirector::sharedDirector()->pushScene( pScene); ÄÚÄÚ½º2DÀÇ À§Àڵ忡¼ scene( ) ¸Þ¼Òµå·Î ¾ÀÀ» »ý¼ºÇϹǷΠ°ü·Ê»ó ¶È°°ÀÌ ÇÑ´Ù. plusescene.h
#ifndef _PLUSSCENE
#define _PLUSSCENE #include "cocos2d.h" class PlusScene : public cocos2d::CCLayerColor { public: virtual bool init(); static cocos2d::CCScene* scene(); CREATE_FUNC(PlusScene); void doClose(CCObject* pSender); }; #endif
plusscene.cpp
#include "PlusScene.h"
using namespace cocos2d; CCScene* PlusScene::scene() { CCScene *scene = CCScene::create(); PlusScene *layer = PlusScene::create(); scene->addChild(layer); return scene; } bool PlusScene::init() { //¸Þ´º »ý¼º ÄÚµå »ý·« ¸Þ´º¿¡¼ doClose È£Ãâ return true; } void PlusScene::doClose(CCObject* pSender) { CCDirector::sharedDirector()->popScene(); } PlusScene::scene( )ÀÇ Äڵ带 º¸¸é ´ÙÀ½°ú °°ÀÌ ·¹À̾ Ãß°¡ÇÏ°í ÀÖ´Ù. Scene »ý¼º / Layer »ý¼º / ¾À¿¡ ·¹À̾î Ãß°¡ CCScene *scene = CCScene::create(); PluseScene::create´Â Çì´õ ÆÄÀÏÀÇ CREATE_FUNC(PlusScene)¿¡ ÀÇÇؼ »ý¼º µÈ °ÍÀÌ´Ù.
Init( )¿¡¼ ¸Þ´º¸¦ ¸¸µé¾î ÁÖ°í ÀÖ´Ù. ¸Þ´º¸¦ Ŭ¸¯ÇÏ¿© ¾ÀÀ» ´ÝÀ» ¶§´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù. CCDirector::sharedDirector()->popScene();
SceneÀ» ±³Ã¼ÇÏ´Â ¹æ¹ýReplaceScene È£Ãâ
#include "ReplaceScene.h"
CCScene* pScene = ReplaceScene::scene(); CCDirector::sharedDirector()->replaceScene( pScene ); ±âÁ¸ ¾À¿¡ »õ·Î¿î ¾ÀÀ» ±³Ã¼ÇÏ´Â ¸í·ÉÀº replaceSceneÀÌ´Ù. ReplaceScene.h
//ReplaceScene.h
#ifndef _REPLACESCENE #define _REPLACESCENE #include "cocos2d.h" class ReplaceScene : public cocos2d::CCLayerColor { public: virtual bool init(); static cocos2d::CCScene* scene(); CREATE_FUNC(ReplaceScene); void doClose(CCObject* pSender); }; #endif
ReplaceScene.cpp
#include "ReplaceScene.h"
#include "HelloWorldScene.h" using namespace cocos2d; CCScene* ReplaceScene::scene() { CCScene *scene = CCScene::create(); ReplaceScene *layer = ReplaceScene::create(); scene->addChild(layer); return scene; } bool ReplaceScene::init() { //¸Þ´º »ý¼º ÄÚµå »ý·«, ¸Þ´º¿¡¼ doClose È£Ãâ } void ReplaceScene::doClose(CCObject* pSender) { CCScene* pScene = HelloWorld::scene(); CCDirector::sharedDirector()->replaceScene( pScene ); } ¾ÀÀ» ´ÝÀ» ¶§ replaceSceneÀ¸·Î SceneÀ» ±³Ã¼ ÇØÁÖ°í ÀÖ´Ù. PlusScene.h
Scene ±³Ã¼½Ã ºÒ¸®´Â ¸Þ¼µå ´ÙÀ½ÀÇ ¸Þ¼µåµéÀ» Ãß°¡ÇÏ°í scene°ú init¿¡µµ CCLog¸¦ ÀÌ¿ëÇÏ¿© ·Î±×¸¦ Ãß°¡ ÇÏ¿´´Ù. virtual ~ReplaceScene() CCScene* ReplaceScene::scene() ÀÌ·¸°Ô Çؼ ½ÇÇàÇغ¸¸é ¸Þ¼µåÀÇ ½ÇÇà ¼ø¼´Â ´ÙÀ½°ú °°´Ù. ReplaceSceneÀ¸·Î ±³Ã¼½Ã ºÒ¸®´Â ¸Þ¼µå HelloWorld·Î ±³Ã¼½Ã ºÒ¸®´Â ¸Þ¼µå ±âÁ¸ ÆÄÀÏ°ú ±¸ºÐÇϱâ À§ÇÏ¿© "log_" Á¢µÎ¾î¸¦ Ãß°¡ÇÏ¿© ÆÄÀÏ À̸§À» ¼öÁ¤ÇÏ¿´´Ù. log_HelloWorldScene.h |