我是cocos2d和Objective C的新手,做了一些初步的步骤,并且遇到了我无法击败的问题。我有2个场景,第一个加载一些文件,比加载后我想切换到主场景,但根本不能这样做。我已经制作了加载元素的进度条,我想在加载完成后转到下一个场景。但它不会取代场景而只是退出应用程序。这是PreloaderScene的部分代码:
+(id) scene
{
CCScene *scene = [CCScene node];
CCLayer* layer = [PreloaderScene node];
[scene addChild:layer];
return scene;
}
- (id) init
{
if ((self = [super init]))
{
int n=5;
CCLabelTTF *label = [CCLabelTTF labelWithString:@"Loading..." fontName:@"Marker Felt" fontSize:64];
CGSize size = [[CCDirector sharedDirector] winSize];
label.position = ccp( size.width /2 , size.height/2 );
[self addChild: label];
CCSprite *Bar = [CCSprite spriteWithFile:@"200x30.png"];
Bar.position = ccp(size.width /2 , size.height/2-70);
[self addChild:Bar];
CCSprite *Progress = [CCSprite spriteWithFile:@"2x30.png"];
Progress.position = ccp (size.width/2-100+1, size.height/2-70);
[self addChild:Progress];
ResourceManager *Resource = [[ResourceManager alloc] init];
for (int i=1;i<=n;i++)
{
NSString *imageName =[NSString stringWithFormat:@"image%d.png",i];
[Resource LoadImage:imageName];
[Progress runAction:[CCMoveTo actionWithDuration:1 position:ccp (size.width/2-100+i/n*100, size.height/2-70)]];
[Progress runAction:[CCScaleBy actionWithDuration:1 scaleX:i/n*100 scaleY:1]];
}
[[CCDirector sharedDirector] replaceScene:MainScene];
}
return self;
}
答案 0 :(得分:0)
我没有看到您在哪里创建MainScene以便能够将其用于替换。这可能是问题吗? 也许您需要像以下
一样创建它 MainScene *scene = [MainScene node];
[[CCDirector sharedDirector] replaceScene:scene];
在使用它之前,您需要实际创建主体。
答案 1 :(得分:0)
我也是Cocos2D的新手,但据我所知,我找到了你的答案
Main Scene
replaceScene
。这会导致
CCDirector崩溃....