cocos2d アプリ内でいくつかのプリミティブを描画する必要があります。描画をカプセル化するために、メソッドを上書きするカスタム CCSprite を作成しましたdraw
。
@implementation EnergyBar
-(id) init {
if(self=[super init]){
[self setAnchorPoint:ccp(0,0)];
}
return self;
}
-(void) draw
{
[super draw];
glEnable(GL_LINE_SMOOTH);
glColor4ub(80, 80, 80, ENERGY_ALPHA);
glLineWidth(1);
CGPoint vertices2[] = { ccp(0,0),
ccp(ENERGY_WIDTH,0),
ccp(ENERGY_WIDTH,ENERGY_HEIGHT),
ccp(0,ENERGY_HEIGHT)
};
ccDrawPoly(vertices2, 4, YES);
}
ノードは期待どおりに長方形を描画します。このノードを の子として追加しようとするとすぐにCCSpriteBatchNode
、例外が発生します'NSInternalInconsistencyException', reason: 'CCSprite is not using the same texture id'
。このノード内では、親のスプライト マップで定義されたタイルを使用したくありません。では、このノードをCCSpriteBatchNode
この例外を回避する子として追加するにはどうすればよいでしょうか?