views:

211

answers:

2

Hello,

So I have a spritesheet in png format, and have already worked out the coordinates for what I want to display. I'm trying to create a method that will return a UIImage when passed the location information on the spritesheet. I'm just not sure how to use the CGContext stuff along with the the coordinates to return an UIImage.

I was looking to CGContextClipToRect because I think that is the way to do it, but I just can't seem to get it to work.

Something like this

CGSize size = CGSizeMake(xSize, ySize);
UIGraphicsBeginImageContext(size);
//CGContextClipToRect(spriteSheet.size, imageRect);
[spriteSheet drawAtPoint:CGPointMake(xPos, yPos)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;

returns only what is in the size Context. I need to be able to "move" this size window around the spritesheet if that makes sense.

Any help would be appreciated.

Thanks, Mike

A: 

you need to think of your co-ordinates backwards. The CGSize is fixed. Translate your xPos,yPos so that your sprite appears under the window.

Andiih
+1  A: 

I think the call you want to use is CGImageCreateWithImageInRect

newImage = [UIImage imageWithCGImage:CGImageCreateWithImageInRect( [spriteSheet CGImage] , imageRect )];
drawnonward
Thank you so much! I was looking all over and all I needed was this one line. Works great
Mike