将两个类从一个程序合并到另一个程序中

时间:2011-12-21 06:46:35

标签: objective-c cocos2d-iphone

所以,我试图将两个类,一个Bullet类和一个BulletCache类从一个程序合并到另一个程序的单个类中。

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

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

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

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

尽管我付出了很多努力,但Xcode仍未在此项目中识别CCSpriteBatchNode *。在我写的文件的顶部

@class CCNode; 

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

问题简而言之:我该如何在这个项目中定义CCSpriteBatchNode(一个常见的cocos2d类)?

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

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

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

1 个答案:

答案 0 :(得分: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