0

私はcocos2dでゲームを書いています(Pablo Ruizの本から)。今、私は一時停止画面を作成する必要があり、本によると、AppDelegate.m(および.hファイル)に新しい関数を作成する必要があります:

+(AppDelegate *) get {

return (AppDelegate *) [[UIApplication sharedApplication] delegate];
}

エラーが発生します:タイプが必要です。期待される表現; メッセージ送信式の開始時に'['がありません。宣言されていない識別子「AppDelegate」の使用。

GameScene.mという別のファイルで、次の関数を作成しました。

-(void)resume
{
if(![AppDelegate get].paused)
{
    return;
}
[AppDelegate get].paused = NO;
[self onEnter];
}

-(void)onExit
{
if(![AppDelegate get].paused)
{
    [AppDelegate get].paused = YES;
    [super onExit];
}
}

-(void)onEnter
{
if(![AppDelegate get].paused)
{
    [super onEnter];
}
}

そして、別の一連のエラーが発生します。宣言されていない識別子「AppDelegate」を4回使用します。

誰かがそれらのエラーを取り除く方法を私に説明できますか?

4

2 に答える 2

1

GameScene.hに以下を追加したことを確認してください。

@class AppDelegate;

これにより、クラスが存在することがコンパイラに通知されAppDelegateます。そしてあなたのGameScene.mで:

#import "AppDelegate.h"

これにより、AppDelegateのメンバーとメソッドにアクセスできます。

于 2013-03-24T15:28:26.620 に答える
1

Cocos2d 2.0?次に、AppControllerを使用します。

#import "AppDelegate.h"

AppController *app = (AppController*)[UIApplication sharedApplication].delegate;
于 2013-03-24T15:31:44.137 に答える