0

これは私が試した最初のcocos2dアプリであり、Learning Cocos2dの例に従っていますが、古いバージョンのcocosを参照しているようです。

シーンを作成し、そのinitメソッドで2つのレイヤーを追加します。

チュートリアルでは、delegate.mにこの行を追加する必要があると書かれています(正確には、HelloWorldSceneを実行した前の行を正確に変更します)。

[director_ runWithScene:[GameScene node]];

しかし、エラーが発生します。

奇妙なことに、そのコードはまったく使用されていませんが、次のコードが使用されています。

[director_ pushScene: [IntroLayer Scene]];

しかし、これを使用すると、エラーも発生します。

[director_ pushScene: [GameScene node]];

私のGameSceneはここにあります:

#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.

どうすればこのシーンを自分の被告から始めることができますか?

4

2 に答える 2

1

SceneディレクターのpushSceneメソッド引数を次のように送信する必要があります

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

ご協力いただきありがとうございます!

私はそれを使用しました:

[director_ pushScene: [GameScene node]];

しかし、実際の問題は、GameSceneのinitメソッドで自分自身を返すのを忘れてしまったことです。

于 2013-01-23T12:52:23.930 に答える