我正在为iphone制作cocos2d游戏,我的主游戏模式是Game
,它继承了CCLayer
。
我正在尝试制作另一个游戏模式MathGame
,它继承自Game
,但当我尝试编译时,在MathGame.h
中会出现此错误:
试图使用前进类“game”作为“mathgame”的超类
即使MathGame
的实现和接口为空,我也会得到错误。只有当我试图在另一个文件中包含MathGame.h
时才会发生这种情况。
下面是游戏类的代码:
// Game.h
#import "cocos2d.h"
#import <GameKit/GameKit.h>
#import "SplashScreenLayer.h"
@interface Game : CCLayer
// A bunch of stuff
@end
新游戏类型:
// MathGame.h
#import "Game.h"
@interface MathGame : Game
@end
主菜单包括:
// SplashScreen.h
#import "cocos2d.h"
#import "Game.h"
#import "MathGame.h"
#import "HowToPlayLayer.h"
#import "AboutLayer.h"
@interface SplashScreenLayer : CCLayer
// A bunch of stuff
@end
我在网上找不到有用的东西。有什么想法吗?
最佳答案
您只需要一个导入周期:Game
导入SplashScreenLayer
SplashScreenLayer
导入MathGame
MathGame
导入Game
你的解决方案:
将import
留在MathGame
中,并将其他导入更改为@class。
总而言之:
//game.h游戏
#导入“cocos2d.h”
#导入
@类防溅层;
@界面游戏:cclayer
/一堆东西
@结束
新游戏类型:
//mathGame.h
#导入“game.h”
@接口MathGame:游戏
@结束
主菜单包括:
//splashscreen.h
#导入“cocos2d.h”
#导入“howtoplaylayer.h”
#导入“aboutlayer.h”
@课堂游戏;
@数学游戏课;
@界面飞溅屏蔽层:cclayer
/一堆东西
@结束
上面回答了您的问题,让我解释一下我从阅读到的有关远期减让和进口周期的一些知识:
首先,去看看他们!它们是Objto-C的一个非常重要的部分,你不想错过它!
第二,每当您需要该类时,就使用@类作为私有变量或方法参数。使用导入进行继承和强大的属性。
第三,在实现文件中不要忘记#import
你转发的类!