Cómo hacer un Sprite usando CoreGraphics iOS – Cocos2d-iPhone

Intento crear un sprite que use los charts que están hechos con charts centrales. Parece que no puedo encontrar nada que explique cómo hacer forms usando charts centrales para crear un sprite para usar en cocos2d-iPhone.

Gracias por cualquier idea y ayuda!

No conozco Cocos2d, así que solo puedo darte algunos trucos sobre CoreGraphics en iOS.

Primero, el caso simple, si puedes crear sprites desde un UIImage o un CGImageRef.

/* function that draw your shape in a CGContextRef */ void DrawShape(CGContextRef ctx) { // draw a simple triangle CGContextMoveToPoint(ctx, 50, 100); CGContextAddLineToPoint(ctx, 100, 0); CGContextAddLineToPoint(ctx, 0, 0); CGContextClosePath(ctx); } void CreateImage(void) { UIGraphicsBeginImageContext(CGSizeMake(100, 100)); DrawShape(UIGraphicsGetCurrentContext()); UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); // now you've got an (autorelease) UIImage, that you can use to // create your sprite. // use image.CGImage if you need a CGImageRef } 

Si necesita proporcionar un buffer de datos, y cree su propio CGContextRef:

 CGContextRef CreateBitmapContextWithData(int width, int height, void *buffer) { CGContextRef ctx; CGColorSpaceRef colorspace; size_t bytesPerRow; size_t bitsPerComponent; size_t numberOfComponents; CGImageAlphaInfo alpha; bitsPerComponent = 8; alpha = kCGImageAlphaPremultipliedLast; numberOfComponents = 1; colorspace = CGColorSpaceCreateDeviceRGB(); numberOfComponents += CGColorSpaceGetNumberOfComponents(colorspace); bytesPerRow = (width * numberOfComponents); ctx = CGBitmapContextCreate(buffer, width, height, bitsPerComponent, bytesPerRow, colorspace, alpha); CGColorSpaceRelease(colorspace); return ctx; } void CreateImageOrGLTexture(void) { // use pow2 width and height to create your own glTexture ... void *buffer = calloc(1, 128 * 128 * 4); CGContextRef ctx = CreateBitmapContextWithData(128, 128, buffer); // draw you shape DrawShape(ctx); // you can create a CGImageRef with this context // CGImageRef image = CGBitmapContextCreateImage(ctx); // you can create a gl texture with the current buffer // glBindTexture(...) // glTexParameteri(...) // glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, buffer); CGContextRelease(ctx); free(buffer); } 

Consulte la documentation de Apple para conocer todas las funciones de CGContext: https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CGContext/Reference/reference.html

Espero que esto ayude.