2010-05-19 82 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,讓你的精靈出現在窗口下。