我有一个子类 CCNode,我向其中添加了几个相同的小子类 CCSprite,而这些子类 CCSprite 又具有几个子类精灵子级。我以为我正确使用了 CCSpriteBatchNode,但我注意到数百个绘图调用正在注册,我认为这应该只是一个。
我的 CCNode 子类添加了这个孩子:
Segment* segment = [Segment segmentWithState:kState];
[self addChild:segment];
该段是 CCSprite 的子类,具有:
+(id) segmentWithState:(SegmentState)segmentState { return [[self alloc] initWithState:segmentState];}
-(id) initWithState:(SegmentState)theSegmentState {
segmentSpriteBatch = [CCSpriteBatchNode batchNodeWithFile:@"txt.png"];
[self addChild:segmentSpriteBatch];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"txt.plist"];
self = [super initWithSpriteFrameName:theSegmentStateFrameName];
if (self){
Subsegment * subsegment = [Subsegment subsegmentWithState:kInvisible];
}
return self;
然后这个段子类获得具有相同代码的子类子段的子类:
+(id) subsegmentWithState:(SubsegmentState)subegmentState { return... ]
-(id) initWithState:(SubsegmentState)theSubsegmentState {
subegmentSpriteBatch = [CCSpriteBatchNode batchNodeWithFile:@"txt.png"];
[self addChild:subegmentSpriteBatch];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"txt.plist"];
self = [super initWithSpriteFrameName:theSubegmentStateFrameName];
if (self){
}
return self;
我尝试将一个批处理节点添加到 CCNodeSUb 类,然后将一个段的实例作为子节点添加到批处理节点,但这会引发错误。我也不确定如何将子项(子段)添加到 CCNode 子类批处理节点中。
顺便说一句,我使用类而不是实例方法的代码气味会因此而暴露出来吗?