Iphone SDK: массивы изображений? - PullRequest
0 голосов
/ 18 февраля 2011

Я создаю «Приложение для постукивания», в котором вам нужно убивать зомби, постукивая по ним. В настоящее время я не могу добиться прогресса, потому что я не могу использовать методы, которые мне нужны.

Мое приложение работает так:

У меня есть таймер, который порождает изображение 3 раза в секунду:

[NSTimer scheduledTimerWithTimeInterval:1.0/3 
                                 target:self 
                               selector:@selector(Spawn) 
                               userInfo:nil 
                                repeats:YES];

тогда у меня есть команда Spawn:

- (void) Spawn {
    CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 109.0f);
    UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
    [myImage setImage:[UIImage imageNamed:@"myImage.png"]];
    myImage.opaque = YES;
    [self.view addSubview:myImage];
    [myImage release]
}

У меня также есть команда "TouchesBegan":

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint touchLocation = [touch locationInView:self.view];   
}

То, что я хочу сделать, - это поместить все порождаемые изображения в массив; Если прикоснуться к одному из изображений, я хочу, чтобы оно было удалено из суперпредставления. Я хочу знать, как работает массив и как я могу удалить объекты, добавленные в массив, из другой функции, такой как TouchesBegan.

Пожалуйста, помогите мне с моей проблемой!

EDIT:

Не важно ... Я искал в интернете и обнаружил, что некоторые полезные ресурсы - это почти то, что мне было нужно. Я наконец-то понял, как это работает, и заставил свою функцию spawner работать со столкновениями и с TouchesBegan.

Если кто-то хочет код, просто спросите меня.

DD

1 Ответ

1 голос
/ 18 февраля 2011

Используйте [NSMUtableArray addObject:] и [NSMutableArray removeObject:]

В вашем интерфейсе что-то вроде:

@interface MyClass
{
    NSMutableArray *zombies_;
}

В вашей реализации, после инициализации массива, измените метод spawnвключить строку

[self.zombies addObject:myImage];

и в свой обработчик прикосновений после того, как вы определите, к какому виду был произведен переход, что-то вроде

[zombies_ removeObject:theView];
[theView removeFromSuperview];

Хотя, подумав об этом, вам может быть лучшепросто создавая экземпляры UIButton вместо UIIMageViews и записывая обработчики прикосновений, чтобы определить, к какому виду было прикоснуто.

...