0

GameOver と StageClear シーンから始めて、クラスをより小さな部分に分割しようとしています。GameOver シーンは正常に動作するようになりましたが、StageClear シーンで行き詰まります。調査の結果、このトピックを見つけました。そのトピックに基づいて、ゲーム ステージで StageClear シーンを再利用するために、次のコードを作成しました。

i++;
NSString *go = [NSString stringWithFormat:@"Stage%i", i];
[[CCDirector sharedDirector]replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[NSClassFromString(go) scene]]];

このコードで、次のステージを呼び出したいと思います。(Stage1 --> ゲームをクリア --> i++ --> stage%i = stage2 --> Stage2 に進みます。特にトランジション (3 行目) で不正なアクセス エラー コード 1 が表示され、スタックに次のメッセージが表示されます。

-[CCTransitionFade initWithDuration:scene:] でのアサーションの失敗

なぜこうなった?私は何を間違っていますか?

4

1 に答える 1

0

文字列変数を使用してシーンを置き換えることが可能です

-(void)onEnter{

    [super onEnter];

    Class OtherLayerClassName = NSClassFromString(@"OtherLayer");
    [[CCDirector sharedDirector]replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[OtherLayerClassName scene]]];
}

この場合、必要なファイルを含めることを忘れないでください OtherLayer.h

于 2013-02-26T14:27:28.243 に答える