2010-05-19 63 views
2

所以我有一个PNG格式的精灵表,并且已经为我想要显示的东西制定了坐标。我试图创建一个方法,它会在Spritesheet上传递位置信息时返回一个UIImage。我只是不知道如何使用CGContext的东西与坐标一起返回一个UIImage。使用CGContext显示精灵表iPhone

我正在寻找CGContextClipToRect,因为我认为这是做到这一点的方式,但我似乎无法让它工作。

像这样的事情

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

只返回什么是大小语境。如果有意义的话,我需要能够围绕Spritesheet“移动”这个大小的窗口。

任何帮助,将不胜感激。

谢谢, 迈克

回答

9

我想你想使用的呼叫CGImageCreateWithImageInRect

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

太感谢你了!我正在寻找所有我需要的是这一行。很好的工作 – Mike 2010-05-19 11:59:10

+0

这就是我的做法,但由于所使用的精灵的大小和数量的原因,我遇到了一些性能问题。使用CGImageCreateWithImageInRect,然后复制该图像可以提高动画性能,但需要花费更长的加载时间。 – Saltymule 2013-01-26 03:57:24

0

你需要向后觉得你的坐标的。 CGSize是固定的。翻译你的xPos,yPos,让你的精灵出现在窗口下。