0

我正在制作一个带有增强按钮的游戏。当然,只要让它保持启用状态就可以让玩家不断地点击它。所以,我需要 20 秒的延迟才能再次按下按钮。此外,是否可以在按钮上显示此进度,最好是在按钮本身上?

4

1 回答 1

0

以后请尝试展示您为解决问题所做的尝试。不过,既然你是新来的,我就让它滑一次!

此代码使用NSTimer每秒调用一次的 a。它将触发您为“Boost”指定的任何代码。它还将禁用您的按钮上的用户交互,直到从按下按钮开始 20 秒后,它将允许用户再次按下按钮,最后,此代码显示距离“Boost”还剩多少秒可以在titleLabel按钮的属性上再次使用。

- (IBAction)buttonPressed:(id)sender
{
    myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(activateBoost) userInfo:nil repeats:YES];
}

- (void)activateBoost
{

    if (myButton.userInteractionEnabled == YES) {
        //Put your Boost code here!


    }

    if ([myButton.titleLabel.text intValue] == 0) {
        [myTimer invalidate];
        [myButton setTitle:@"20" forState:UIControlStateNormal];
        myButton.userInteractionEnabled = YES;
    }else{
        myButton.userInteractionEnabled = NO;
        int currentTime = [myButton.titleLabel.text intValue];
        int newTime = currentTime - 1;
        myButton.titleLabel.text = [NSString stringWithFormat:@"%d",newTime];
    }

}

为了使上述代码正常工作,您需要声明一个NSTimer名为“myTimer”和一个UIButton“myButton”。您还需要将按钮的初始文本设置为“20”。

于 2012-07-17T07:09:26.180 回答