Итак, я создал класс под названием «Ягоды», который расширяет CCSpriteBatchNode. Ягоды в основном похожи на монеты в моей игре, добавляя к значению, если «столкнулись». Это код, который я имею в своем классе Ягоды для CCSpriteBatchNode:Добавление потока спрайтов с использованием CCSpriteBatchNode в cocos2d?
- (id) init
{
if((self = [super init]))
{
CCSpriteBatchNode* berryBatch1 = [CCSpriteBatchNode batchNodeWithFile:@"One.png"];
[self addChild:berryBatch1];
CCSpriteBatchNode* berryBatch2 = [CCSpriteBatchNode batchNodeWithFile:@"Two.png"];
[self addChild:berryBatch2];
CCSpriteBatchNode* berryBatch3 = [CCSpriteBatchNode batchNodeWithFile:@"Three.png"];
[self addChild:berryBatch3];
for (int i = 0; i < 100; i++)
{
CCSprite* berry1 = [CCSprite spriteWithFile: @"One.png"];
[berryBatch1 addChild:berry1];
CCSprite* berry2 = [CCSprite spriteWithFile: @"Two.png"];
[berryBatch2 addChild:berry2];
CCSprite* berry3 = [CCSprite spriteWithFile: @"Three.png"];
[berryBatch3 addChild:berry3];
}
numBerries =
}
return self;
}
numBerries является ИНТ, что я сделал. Я пытаюсь выяснить количество ягод во всех трех CCSpriteBatchNodes, так что, когда я создаю метод detectCollision, я могу использовать его в цикле for.
Любые идеи?
Почему ягоды подкласс CCSpriteBatchNode? Мне кажется, что для этого вполне достаточно подклассификации CCNode. – LearnCocos2D
Потому что класс все о создании CCSpriteBatchNode? – Surz
Но вы не используете его как пакетный спрайт-узел. Это не то, что наследование используется/полезно! Вы хотите наследовать, если ваш подкласс «похож на суперкласс», но не тогда, когда он «использует суперкласс». Вы создали совокупный класс, который является правильным способом делать то, что вы хотите сделать, но вы не должны подклассифицировать класс, который вы просто используете внутри своего класса. Измените его на подкласс из CCNode. До сих пор работает класс ягод? Да. Поэтому подкласс CLSpriteBatchNode не требуется. Кроме того, теперь вы можете добавлять другие объекты в ягоды (CCSpriteBatchNode разрешает только детям CCSprite). – LearnCocos2D