Sto provando a creare un semplice conto alla rovescia in modo che quando un giocatore entra nel mio gioco il timer inizia da 60 a 0. Sembra semplice ma mi confondo su come scrivo questo.(NSTimer) creazione di un conto alla rovescia del timer
Finora ho creato un metodo nel mio GameController.m che assomiglia a questo:
-(int)countDownTimer:(NSTimer *)timer {
[NSTimer scheduledTimerWithTimeInterval:-1
invocation:NULL
repeats:YES];
reduceCountdown = -1;
int countdown = [[timer userInfo] reduceCountdown];
if (countdown <= 0) {
[timer invalidate];
}
return time;
}
All'inizio della partita ho inizializzare il tempo intero a 60. L'etichetta è quindi stato impostato all'interno ViewController . Ma nel momento in cui compilo il codice mostra solo l'etichetta a 60 e non diminuisce affatto.
Qualsiasi aiuto sarebbe molto apprezzato - Sono nuovo di Objective-C.
EDIT
con qualche assistenza da ora ho separato il codice in 2 metodi separati. Il codice ora assomiglia a questo:
-(void)countDown:(NSTimer *)timer {
if (--time == 0) {
[timer invalidate];
NSLog(@"It's working!!!");
}
}
-(void)countDownTimer:(NSTimer *)timer {
NSLog(@"Hello");
[NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(countDown:)
userInfo:nil
repeats:YES];
}
TUTTAVIA, il codice non è ancora in esecuzione correttamente e quando chiamo il metodo [gioco countDownTimer] dal mio controller della vista si rompe dicendo: "selettore non riconosciuto inviato a esempio" . Qualcuno può spiegare cosa c'è di sbagliato qui?
non sparerebbe una volta di più di quello che vuole in quel modo? Penso che dovrebbe essere '--remainingCounts == 0', no? –
@ Daij-Djan Hai ragione, dovrebbe essere 'remainingCounts = 59' o' --remainingCounts'. Grazie! – dasblinkenlight
Grazie per il tuo feedback dasblinkenlight. Tuttavia, ancora lottando per farlo funzionare! Al momento il mio selettore non sta comunicando con il metodo countDown, cioè non succede niente quando compilo il codice. Questo potrebbe essere dovuto al fatto che il timer non è stato avviato o che non sono collegati? –