0

ブーストボタンのあるゲームを作っています。もちろん、有効のままにしておくと、プレーヤーは常にタップすることができます。そのため、ボタンをもう一度押すことができるようになるまでに 20 秒の遅延が必要です。また、この進行状況をボタン、できればボタン自体に表示することは可能でしょうか?

4

1 に答える 1

0

将来的には、問題を解決するために何を試みたかを示すようにしてください。しかし、あなたは新しいので、一度スライドさせます!

このコードでは、 NSTimer1 秒に 1 回呼び出される を使用しています。「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 に答える