Как «нарисовать» UIImages в виде? - PullRequest
0 голосов
/ 14 мая 2011

Я делаю простую игру, но мне нужно рисовать изображения двадцать раз в секунду. Я собирался использовать несколько UIImageViews, но я быстро понял, что это не будет работать. Итак, как можно рисовать изображения, а затем «стирать» их при срабатывании таймера обновления? Я пытался использовать следующий код, но ничего не появилось.

- (void) update:(NSTimer*) timer {
    UIimage *someImage;
    someImage = [UIImage imageNamed:@"car.png"];
    [someImage drawAtPoint:thePoint];
}

Я пытался сделать thePoint одновременно NSPoint и CGRect, но ничего не появилось. Что мне теперь делать? Примечание: thePoint объявлен в моем .h файле. В настоящее время это NSPoint, и я думаю, что он используется должным образом.

Ответы [ 2 ]

2 голосов
/ 14 мая 2011

Это действительно твой код? Это почти бессмысленно. Вы создали локальную переменную someImage, не создали объект, на который он мог бы указывать, и затем пытаетесь вызвать метод этого не-объекта, который не существует в классе, который вы пытаетесь использовать (UIImage не имеет setImage:). Он почти гарантированно завершится сбоем, и если это не произойдет сразу же, то это вполне может привести к тому, что это произойдет позже, потому что это затормаживает память - переменная, созданная в стеке, как эта, не инициализируется в 0 (nil) как было бы, если бы это был ивар, и попытка отправить сообщение на какой-то случайный адрес - плохая идея. Зачем вам пытаться передать CGRect методу, который даже говорит в своем имени , что он принимает точку? Наконец, где вы ожидаете, что это будет нарисовано? Для рисования вам нужен контекст рисования (обычно предоставляемый представлением, которое упоминается в вашем заголовке, но не вопрос).

Пожалуйста, ознакомьтесь с главой "Изображения" Руководства по рисованию, если ничего другого.

1 голос
/ 15 мая 2011

NSPoint для Mac, а CGRect - это прямоугольник, а не точка.То, что вы ищете, это CGPoint.Попробуйте что-то вроде этого:

-(void)update:(NSTimer*) timer {
    CGPoint thePoint = CGPointMake(0, 0);
    UIImage *someImage = [UIImage imageNamed:@"car.png"];
    [someImage drawAtPoint:thePoint];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...