使用CGContext显示精灵工作表iPhone

使用CGContext显示精灵工作表iPhone,iphone,objective-c,sprite,cgcontext,Iphone,Objective C,Sprite,Cgcontext,所以我有一个png格式的spritesheet,并且已经计算出了我想要显示的坐标。我正在尝试创建一个方法,当在spritesheet上传递位置信息时,该方法将返回UIImage。我只是不知道如何使用CGContext和坐标一起返回UIImage 我一直在寻找CGContextClipRect,因为我认为这是一种方法,但我似乎无法让它发挥作用 像这样的 CGSize size=CGSizeMake(xSize,ySize) UIGraphicsBeginImageContext(大小) //cg

所以我有一个png格式的spritesheet,并且已经计算出了我想要显示的坐标。我正在尝试创建一个方法,当在spritesheet上传递位置信息时,该方法将返回UIImage。我只是不知道如何使用CGContext和坐标一起返回UIImage

我一直在寻找CGContextClipRect,因为我认为这是一种方法,但我似乎无法让它发挥作用

像这样的


CGSize size=CGSizeMake(xSize,ySize)
UIGraphicsBeginImageContext(大小)
//cgContextClipRect(spriteSheet.size,imageRect)
[spriteSheet drawAtPoint:CGPointMake(xPos、YPO)]
UIImage*newImage=UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsSendImageContext()
返回新图像

仅返回大小上下文中的内容。如果有意义的话,我需要能够在精灵表周围“移动”这个大小的窗口

任何帮助都将不胜感激

谢谢,
迈克

你需要向后思考你的坐标。CGS的大小是固定的。翻译您的XPO、YPO,使您的精灵显示在窗口下。

我想您要使用的调用是
cImageCreateWithImageInRect

newImage = [UIImage imageWithCGImage:CGImageCreateWithImageInRect( [spriteSheet CGImage] , imageRect )];

非常感谢你!我到处找,我只需要这一行。这是我做的,但是由于精灵的大小和使用的数量,我遇到了一些性能问题。使用CGImageCreateWithImageInRect,然后复制该图像可以提高动画性能,但代价是加载时间更长。