我NSTimers
在 Objective-C 中有两个。其中之一是使物体在 iPhone 屏幕上缓慢移动,而另一个是得分计时器,每 0.5 秒增加一分。将对象向上移动到屏幕上的计时器也有 0.5 秒的间隔。这些计时器在按下按钮时被调用/激活。按下按钮时,对象会在屏幕上缓慢移动 0.5 秒。0.5 秒后,得分加一分,运行正常。
然而,问题在于,在 0.5 秒后,对象立即移回屏幕底部的原始位置。然后它再次开始向上移动 0.5 秒,并立即移回屏幕底部。计分计时器完美运行,每 0.5 秒加 1 分。
代码
-(IBAction)play:(id)sender{
gametimer1 = [NSTimer scheduledTimerWithTimeInterval:0.05f target:self selector:@selector(gameLoop) userInfo:nil repeats:YES];
scoretimer = [NSTimer scheduledTimerWithTimeInterval:0.05f target:self selector:@selector(scorechange) userInfo:nil repeats:YES];
}
-(void)scorechange{
score = score + 1;
scorelab.text = [NSString stringWithFormat:@"%i", score];
}
-(void)gameLoop{
balstarted = YES;
bal.center = CGPointMake(bal.center.x, bal.center.y - balspeed);
}
再一次,我的对象 bal 并没有按照应有的方式向上移动屏幕,而是仅向上移动了几个像素(在 0.5 秒内),然后将自身重置到之前的位置。