CCSpriteBatchNode
に変換したいのUIImage
ですが、できる方法はありますか?に変換できることはわかっていますがCCSprite
、UIImage
で試してみるとCCSpriteBatchNode
クラッシュします。
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'CCSpriteBatchNode should NOT be root node'
ありがとう!
CCSprite を UIImage に変換するコードは次のとおりです。
+ (UIImage *)renderUIImageFromSprite:(CCSprite *)sprite {
CCRenderTexture *renderer = [CCRenderTexture renderTextureWithWidth:sprite.contentSize.width; height:sprite.contentSize.height;];
[renderer begin];
[sprite visit];
[renderer end];
return [renderer getUIImageFromBuffer];
}
編集:これは作業コードです。
+ (UIImage *)renderUIImageFromCCLabelBMFont:(CCLabelBMFont *)bmfont {
GLProgram *program = [[CCShaderCache sharedShaderCache] programForKey:kCCShader_PositionTextureColor];
glUseProgram(program->program_);
int textureWidth = bmfont.contentSize.width;
int textureHeight = bmfont.contentSize.height;
CCRenderTexture *renderer = [CCRenderTexture renderTextureWithWidth:textureWidth height:textureHeight];
bmfont.anchorPoint = ccp(0.0, 0.0);
CCNode *node = [CCNode node];
[node addChild:bmfont];
[renderer begin];
[node visit];
[renderer end];
return [renderer getUIImageFromBuffer];
}