【发布时间】:2026-01-05 16:45:01
【问题描述】:
我已经准备好很多地方告诉我我不应该继承 CCSprite 类,而应该将精灵作为成员变量添加到我的类中。
这是我所做的: 创建了一个 CCNode 类, 在我的节点类中添加了一个 CCSprite 变量, 初始化我的精灵并将其作为子节点添加到我的节点。
我现在有一个 CCLayer,我想在其中绘制这些精灵,但是当我将我的节点添加为子节点时,什么都没有绘制。如果我将节点精灵添加为子节点而不是它将绘制的节点。
我的问题是,有没有办法让我的精灵通过将节点作为子节点添加到图层中进行绘制,或者添加精灵是唯一的方法?
我是 Objective-c 和 iPhone 开发的新手,因此我们将不胜感激。
编辑 这是我的 CCNode 类 - animalSprite 是我的 CCSprite。
@implementation Animal
@synthesize animalSprite = _animalSprite;
-(Animal *) initWithFile:(NSString *)texture position:(CGPoint) position
{
self.animalSprite = [CCSprite spriteWithFile:texture];
self.animalSprite.position = position;
self.animalSprite.scale = 0.25f;
[self addChild:self.animalSprite];
return self;
}
-(void) dealloc{
[super dealloc];
}
@end
现在在我的 CCLayer 类中,我有一个包含节点列表的级别变量。
//Load Level
Level *level = [LoadLevel loadLevel];
for (Animal *animal in level.animals)
{
[self addChild:animal];
}
编辑我创建了我的节点对象,然后通过以下方式将它们添加到级别类中的数组中。
Animal *animal = [[[Animal alloc] initWithFile:animalFileName position:position] autorelease];
[level.animals addObject:animal];
【问题讨论】:
标签: iphone objective-c inheritance cocos2d-iphone