ブーストボタンのあるゲームを作っています。もちろん、有効のままにしておくと、プレーヤーは常にタップすることができます。そのため、ボタンをもう一度押すことができるようになるまでに 20 秒の遅延が必要です。また、この進行状況をボタン、できればボタン自体に表示することは可能でしょうか?
1 に答える
0
将来的には、問題を解決するために何を試みたかを示すようにしてください。しかし、あなたは新しいので、一度スライドさせます!
このコードでは、 NSTimer
1 秒に 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 に答える