Какао работает с текстурным атласом - PullRequest
1 голос
/ 28 февраля 2011

Я загружаю атлас текстуры в свое приложение, используя drawRect из подпредставления NSView:

NSImage *imageFromBundle = [NSImage imageNamed:@"sheet1.png"];
[self setNeedsDisplay:YES];
NSSize isize = [imageFromBundle size];
[imageFromBundle drawInRect:[self bounds] fromRect:NSMakeRect(0.0, 0.0,  isize.width, isize.height) operation: NSCompositeCopy fraction:1.0];

это работает нормально, но отображает весь текстурный атлас. Как мне выделить конкретную часть изображения? Изображение имеет размер 1800x1200 пикселей, каждое изображение имеет размер 180x250 пикселей, поэтому первое изображение будет x = 0, y = 0, w = 180, h = 250, два - x = 180, y = 0, w = 180, h = 250 и т. д.

Я попытался изменить x, y, w, h в приведенном выше примере, но мой вывод - просто черное изображение. Любая помощь будет оценена.

Редактировать: Решено, хотя я не уверен, правильно ли это:

Я изменил файл на 1100x1100 (это не влияет на решение, но отразится в ответе, поэтому я хотел это отметить. А потом я просто нацелился на неправильную область (x, y) изображения и прошел неверный размер цели. Новый код выглядит так:

[imageFromBundle drawInRect:[self bounds] fromRect:NSMakeRect(0.0, 950.0, 175.0, 250.0) operation: NSCompositeCopy fraction:1.0];

Если есть другой способ достижения этого, он хотел бы увидеть это. Спасибо.

...