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

2 回答 2

1

Make sure you have added the following to your GameScene.h:

@class AppDelegate;

This will let the compiler know that the class AppDelegate exists. And in your GameScene.m:

#import "AppDelegate.h"

This lets you access AppDelegate members and methods.

于 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 回答