シーンの呼び出し
cocos2dで新規プロジェクトを作成した時
AppDelegate→IntoroLayer→HelloWorldLayer
の順番に呼ばれる様になっている。
これを新しく作成したファイル(SampleLayer)で
AppDelegate→IntoroLayer→SampleLayer
の順番に呼ぶようにする。
・ファイルを追加(ここではSampleLayer)する。
■サンプルコード
#import <Foundation/Foundation.h>
#import "cocos2d.h"
@interface SampleLayer : CCLayer
{
}
+(CCScene *) scene;
@end
#import "SampleLayer.h"
@implementation SampleLayer
/**
*
* シーン取得
*
**/
+(CCScene *) scene
{
// シーン生成
CCScene *scene = [CCScene node];
// レイヤー生成
SampleLayer *layer = [SampleLayer node];
// シーンにレイヤーを追加
[scene addChild:layer];
// シーンを返す
return scene;
}
/**
*
* 初期処理
*
**/
-(id) init
{
if(self = [super init])
{
// 画面のサイズを取得
CGSize win_size = [[CCDirector sharedDirector] winSize];
// 画像スプライト生成
CCSprite *sprite = [CCSprite spriteWithFile:@"image.png"];
// 座標を設定
sprite.position = ccp(win_size.width / 2, win_size.height / 2);
// 画像スプライトを追加
[self addChild:sprite];
}
return self;
}
@end
IntroLayer.mファイルにてreplaceSceneの部分を編集する。
-(void) onEnter
{
[super onEnter];
// 呼びたいシーンを記述する
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[SampleLayer scene]]];
}
ビルドして実行した後、画像が出ていれば成功
※AppDeglateの後に呼び出す場合
AppDelegate.mファイルにてSceneの呼び出し部分を編集する
-(void) directorDidReshapeProjection:(CCDirector *)director
{
if(director.runningScene == nil)
{
// 呼びたいシーンを記述する
[director runWithScene:[SampleLayer scene]];
}
}
