我正在制作一款新的射击游戏,类似于我小时候最喜欢的《Galaga》。
这是我用于子弹物理的代码:
-(IBAction)shootBullet:(id)sender{
imgBullet.hidden = NO;
timer = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(fireBullet) userInfo:Nil repeats:YES];
}
-(void)fireBullet{
imgBullet.center = CGPointMake(imgBullet.center.x + bulletVelocity.x , imgBullet.center.y + bulletVelocity.y);
if(imgBullet.center.y <= 0){
imgBullet.hidden = YES;
imgBullet.center = self.view.center;
[timer invalidate];
}
}
无论如何,显而易见的问题是一旦子弹离开屏幕,它的中心就会被重置,因此我正在为每次“射击”按钮按下重复使用同一个子弹对象。
理想情况下,我希望用户可以在不导致程序崩溃的情况下连续按下“射击”按钮。如何修改现有代码以便在每次按下按钮时生成一个新的子弹对象,并在其离开屏幕或与敌人碰撞后消失?
感谢您提供的任何帮助!