mantiene la velocità di animazione con requestAnimationFrame

0

Ho notato che gli sviluppatori di giochi HTML raccomandano l'uso di requestAnimationFrame rispetto a un timer per il ciclo dell'animazione. Capisco che questo possa essere ottimizzato dal browser, ma come ti assicuri che la velocità della tua animazione sia coerente su tutti i dispositivi? Se un determinato dispositivo ha il doppio della frequenza fotogrammi, un gioco sembrerà giocare al doppio della velocità e sembrerà strano.

Gli sviluppatori progettano il loro codice per adattarsi dinamicamente al framerate corrente? Questo sembra molto più complicato del semplice settaggio di un timer per 60FPS, specialmente se il framerate cambia durante la riproduzione.

    
posta gloo 25.06.2015 - 19:05
fonte

1 risposta

0

I calcoli del gioco implicano molto lavoro reale; come ogni vero lavoro, sarebbe ridicolo provare a mandare al computer "Imponi che questa funzione venga eseguita a 300 ms". In effetti, i computer della 2040 potrebbero eseguire quel lavoro 10 volte più velocemente. requestAnimationFrame significa "esegui questo il più spesso possibile". Scoprirai che un sacco di codice matematico e intuitivo in un motore ben sviluppato tende a non eseguire gran parte di nulla in passaggi fissi, ma invece moltiplica ogni numero per scalare, come il tempo (o la gravità, o anche un "gioco corrente"). velocità "costante che consente al tuo personaggio di entrare in Slow Motion o Pausa facilmente)

    
risposta data 25.06.2015 - 21:42
fonte

Leggi altre domande sui tag