Слияние двух классов из одной программы в другую - PullRequest
0 голосов
/ 21 декабря 2011

Итак, я пытаюсь объединить два класса, класс Bullet и класс BulletCache из одной программы в один класс другой.

Класс Bullet является подклассом CCSprite, а класс BulletCache является подклассом CCNode.

Я пытаюсь создать класс Bullet, который является подклассом Item, который является подклассом LevelObject, который является подклассом CCNode.Таким образом, вы можете увидеть, как он связывает воедино.

Мой новый класс Bullet (как объявлено в файле класса Items) содержит эти переменные экземпляра, верхние два из класса Bullet, а нижние два из BulletCache,

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

CCSpriteBatchNode * не распознается XCode в этом проекте, несмотря на все мои усилия.В верхней части файла я написал

@class CCNode; 

И все же CCSpriteBatchNode все еще не определен.Любая помощь и совет высоко ценится.

Вопрос в двух словах: Как, черт возьми, я могу получить CCSpriteBatchNode (общий класс cocos2d) для определения в этом проекте?

Другая проблема заключается в том, что @interface Item: LevelObject и @Интерфейс Bullet: Элемент записан в одном файле.Я попробовал @class CCSpriteBatchNode;, но безуспешно.

Я тоже попробовал "#import CCSpriteBatchNode.h" и все равно безуспешно.

Xcode, похоже, настаивает на том, что класс CCSpriteBatchNode не существует

1 Ответ

0 голосов
/ 21 декабря 2011

Если я буду следовать за вами правильно, я думаю, что ваш макет класса будет выглядеть примерно так (заметьте, я разделил мои на отдельные файлы; в общем, если вы используете одни и те же файлы, объявление в вашем файле должно следовать тот же порядок сверху вниз):


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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...