我是Objective C的新手,我正在尝试制作一个游戏,事情就是当我的导弹击中一艘我希望它消失的船时,但是当我再次开火时我希望它初始化为我想再次开火
图像在ViewControler.h中初始化
IBoutlet UIImageView *Missile;
然后当我尝试使用此代码的火方法时
Missile = [[UIImageView alloc] initWithFrame:CGRectMake(54, 145, 65, 30)];
Missile.image = [UIImage imageNamed:@"missile_fire.png"];
Missile.hidden = NO;
它崩溃了,我想这是因为它已经初始化了,但后来我这样做了
self->Missile = nil;
然后没有崩溃,但是在我上面的初始化后也没有图像,我需要的是初始化当我准备用位置和图像触发时,并且当它点击时消失
答案 0 :(得分:2)
如果你想在没有故事板的情况下使用图像,请不要使用IBoutlet
当你想使用storyboard连接对象到类时,使用beacuse IBoutlet
。
仅限使用:
UIImageView *Missile;
答案 1 :(得分:0)
初始化为:
UIImageView* missile;
然后,
missile = [[UIImageView alloc] initWithFrame:CGRectMake(x, y, width, height)];
missile.image = [UIImage imageNamed:@"name"];
[self.view addSubview:missile];
崩溃时:
[missile removeFromSuperview];
如果你想让导弹移动,你将需要更多的代码。
此外,您应该将其设为missile
而不是Missile
,因为它不是一个类。类获得大写的第一个字母,但变量不是(missile
是UIImageView
个对象)