游戏:ScoreNumber不会增加1.每次增加4(有时,10)

时间:2014-08-02 19:51:15

标签: ios objective-c

我有一个你在平台上反弹的游戏。我希望每次你在平台上反弹时得分都会增加1。但是,它每次都会增加一些随机数(如10)。

在Game.h中我有:

int ScoreNumber;
IBOutlet UILabel *ScoreLabel;
-(void)Score;

...

在Game.m中我有:

-(void)Score {
    ScoreNumber = ScoreNumber +1.0;
    ScoreLabel.text = [NSString stringWithFormat:@"%i", ScoreNumber];
}

-(void)PlatformMoving {
   if (CGRectIntersectsRect(Bird.frame, Platform1.frame)) {
       [self Score];
   }
}
...

这应该每次计数1,但计数超过1

1 个答案:

答案 0 :(得分:3)

如果在(无效)分数方法中放置断点,您可能会看到每次反弹时多次调用它,因为矩形可能会重叠多个帧。您可以在(void)PlatformMoving方法中放置一个检查,以便在再次调用Score之前查看上次测试是否失败。这样可以确保在连续2帧中永远不会调用分数,并且应该防止每次反弹得分超过一个点。