0

这是我尝试的第一个 cocos2d 应用程序,我正在学习《Learning Cocos2d》一书中的示例,但它似乎指的是旧版本的 cocos。

我创建了一个场景,并在它的 init 方法中添加了 2 个图层。

现在教程说,在我的 delegate.m 中我应该添加这一行(准确地更改之前的那个 strted HelloWorldScene 的行):

[director_ runWithScene:[GameScene node]];

但我收到一个错误。

奇怪的是它根本不使用那个代码,而是那个:

[director_ pushScene: [IntroLayer Scene]];

但是如果我使用它,我也会得到一个错误:

[director_ pushScene: [GameScene node]];

我的游戏场景在这里:

#import "GameScene.h"

@implementation GameScene
-(id) init{
    self=[super init];
    if (self!=nil){
        BackgroundLayer *backgroundLayer=[BackgroundLayer node];
        [self addChild:backgroundLayer z:0];

        GameplayLayer *gameplayLayer=[GameplayLayer node];
        [self addChild:gameplayLayer z:5];
    }
}

@end

和我得到的错误:

EXC_BAD_ACCESS in both cases.

如何从我的 appdelegate 开始这个场景?

4

2 回答 2

1

您必须发送Scene主管的 pushScene 方法参数,如

[director_ pushScene: [GameScene scene]];
于 2013-01-23T06:42:32.933 回答
0

谢谢你的帮助!

我确实使用过:

[director_ pushScene: [GameScene node]];

但实际的问题是在我的 GameScene 初始化方法中我忘记了返回 self.

于 2013-01-23T12:52:23.930 回答