Ich bin in Spiel Entwicklung online. Ich versuche ein Online-FPS-Spiel zu machen, und ich bin nur an den Punkt gekommen, an dem ich meinen Charakter aktualisieren muss. Ich versuche, meinen Code einfach zu halten, indem ich nur eine Zeichen- und Aktualisierungsfunktion verwende. Wenn die HTML-Lasten, führe ich beide: (Ist das notwendig?)Javascript Update Funktionen
<body onload='DRAW(); UPDATE();'>
Die Auslosung Funktion der Spieler auf den Bildschirm zieht, und das Update soll für einen Tastendruck überprüfen, um den Charakter zu bewegen. Ich versuche, das Skript Update mit dieser zu machen:
function UPDATE()
{
update = setInterval(UPDATE, 60);
}
und meinem Wissen, es funktioniert gut, weil, wenn ich versuche und Bearbeiten von Code in meinen Online-IDE (c9.io), die ich verwende, um die Website zu testen Es friert ein, wenn die Site ausgeführt wird. Ich rufe auch eventListeners in der Zeichenfunktion auf. (Ist das richtige, wenn ich will für einen Schlüssel testen hinunter jeden Frame?)
function DRAW()
{
window.addEventListener('keydown', function (e) {
keys.keys = (keys.keys || []);
keys.keys[e.keyCode] = true;
});
window.addEventListener('keyup', function (e){
keys.keys[e.keyCode] = false;
});
}
Meine Fragen sind:
Gibt es einen einfacheren Weg, in jedem Frame ein Skript Update zu machen?
Gibt es ein JavaScript-Addon (wie Three.js), das ich verwenden kann, um dies zu erleichtern?
Jedes Wissen wird sehr geschätzt.
DRAW() sollte nur einmal in der
Teil des HTML aufrufen (nach meinem Wissen), Danke für die Info auf dem SetInterval obwohl. Ich wusste, dass es krachte, ich konnte einfach nicht verstehen warum. Ich überprüfe den Artikel –@ TaylorBrown Denken Sie es als äquivalent zu einer nuklearen Kettenreaktion. Nach einer Laufzeit von nur 960ms haben Sie bereits 65536 Intervalle gleichzeitig und verdoppelt sich alle 60ms. Dein Computer kann damit nicht umgehen und der Browser stürzt ab. – dannyjolie
Gute Analogie, macht jetzt viel mehr Sinn. –