Ich versuche, eine Video-Spiel-Engine, die die render
Funktion als eine Schleife ausführen müssen. Wenn diese Funktion beendet ist, will ich es wieder laufen, und wieder und wieder ... Aber wenn ich versuche dies:Führen Sie eine Funktion unendlich oft
function render() {
// some code here which takes ~ 0.00015 second to run
}
while(1) { render(); }
Der Browser freeze in wenigen Sekunden. So habe versucht, ich einen anderen Weg:
function render() {
// some code here which takes ~ 0.00015 second to run
}
setTimeout(render);
// I've tried also
setTimeout(render, 1);
auch:
function render() {
// some code here which takes ~ 0.00015 second to run
setTimeout(render);
// OR
setTimeout(render, 1);
}
Aber das läuft die Funktion nur ~ 500-mal an einem zweiten, will ich es laufen ~ 5000 mal. Das ist möglich, wenn ich die Laufzeit (0,00015 Sekunden) anschaue, aber ich finde keinen Weg, dies zu tun.
Hat jemand eine Idee?
Versuchen Sie ['requestAnimationFrame'] (https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame), aber wenn Sie * bereits * 500 fps bekommen, warum brauchen Sie mehr? –
@Lucas Trzesniewski: Sie sollten dies als Antwort wiederholen. – doctorless
@drheart jemand schon FGITWed das, aber um ehrlich zu sein, ich bin ziemlich zweifelhaft über OP 500 fps Figur;) –