所以,我试图将两个类,一个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类不存在
答案 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