0

我正在制作一个“点击应用程序”,您必须通过点击它们来杀死僵尸。目前我无法取得任何进展,因为我无法正确使用我需要的方法。

我的应用程序是这样工作的:

我有一个每秒生成 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”等不同的函数中删除添加到数组中的对象。

请帮我解决我的问题!

编辑:

没关系...我在互联网上搜索,发现一些有用的资源几乎是我需要的。我终于弄清楚了它是如何工作的,并让我的 spawner 函数与碰撞和“TouchesBegan”一起工作。

如果有人想要代码,请问我。

DD

4

1 回答 1

1

使用 [NSMUtableArray addObject:] 和 [NSMutableArray removeObject:]

在您的界面中,类似于:

@interface MyClass
{
    NSMutableArray *zombies_;
}

在您的实现中,初始化数组后,更改您的 spawn 方法以包含该行

[self.zombies addObject:myImage];

并在您的触摸处理程序中,确定触摸了哪个视图之后,例如

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

虽然,在考虑之后,您最好只创建 UIButton 实例而不是 UIIMageViews 并编写触摸处理程序来确定哪个视图被触摸。

于 2011-02-17T22:51:54.567 回答