2011-12-21 40 views
0

因此,我试图将两个类,一个Bullet Class和一个BulletCache类从一个程序合并到另一个程序的一个类中。将两个类从一个程序合并到另一个程序

Bullet Class是CCSprite的子类,BulletCache类是CCNode的子类。

我正在尝试创建一个Bullet类,它是Item的子类,它是LevelObject的子类,它是CCNode的子类。所以你可以看到它是如何联系在一起的。

我的新Bullet类(在Items类文件中声明)具有这些实例变量,上面两个来自Bullet Class,而下面两个来自BulletCache。

{ 
    CGPoint velocity; 
    bool isPlayerBullet; 
    CCSpriteBatchNode* batch; 
    int nextInactiveBullet; 
} 

CCSpriteBatchNode *在本项目中无法被Xcode识别,尽管我尽了全部努力。在我写的文件顶部

@class CCNode; 

然而,CCSpriteBatchNode仍未定义。任何帮助和建议非常感谢。

问题概括:我该如何在该项目中定义CCSpriteBatchNode(一个常见的cocos2d类)?

另一个问题是@interface Item:LevelObject和@interface Bullet:Item写在同一个文件中。我尝试了@class CCSpriteBatchNode;并没有成功。

我也试过"#import CCSpriteBatchNode.h",仍然没有成功。

Xcode中似乎坚持认为CCSpriteBatchNode类不存在

回答

0

假设我跟着你正确的,我会想你的客舱布局会是这个样子(注意,我矿分离成单独的文件;如果使用相同的文件,一般来说,在文件中声明,应遵循相同的顺序从上到下):


LevelObject.h

#import "CCNode.h" 

@interface LevelObject : CCNode { 

} 

@end 

Item.h

#import "LevelObject.h" 

@interface Item : LevelObject { 

} 

@end 

Bullet.h

#import "Item.h" 

@class CCSpriteBatchNode; 

@interface Bullet : Item { 
    CGPoint velocity; 
    bool isPlayerBullet; 
    CCSpriteBatchNode* batch; 
    int nextInactiveBullet; 
} 

@end 

Bullet.m

#import "Bullet.h" 
#import "CCSpriteBatchNode.h" 

@implementation Bullet 


@end 
+0

感谢您的回复! 不幸的是,我与玩弄的工具包中有所有#进口“Quexlor.h” 和Quexlor.h文件看起来像这样的文件: '#进口“iPhoneGameKit.h” #进口“GameState.h “ #import”Game.h“ #import”LevelObject。H” // etc' 所以,这就是我的挑战:找出如何使这个网站的代码的意义不打破东西 的另一个问题是,在@interface项目:LevelObject和 @interface子弹:项目是写在同一个文件上 我试过@class CCSpriteBatchNode;没有成功Xcode似乎坚持认为CCSpriteBatchNode不存在 – GPP 2011-12-21 07:19:44

+0

刚刚实现CCSpriteBatchNode并不存在于Cocos2d源代码中所以我添加它,复制+粘贴来自另一个项目的代码。 – GPP 2011-12-21 08:18:49

相关问题