Ich habe ein Problem, meine Kollisionserkennung Funktion setzt manchmal Einheit Position NaN. Wenn ich Konsole (auf Chrom) Position der Entität und Kollision öffnen sind gültige Zahlen, aber subtrahieren sie voneinander manchmal NaN zurück.Javaskript: Einfache Substraktion liefert NaN
updateCollision = function(entity,rect) {
var a = entity.x - rect.x; // a = NaN , entity.x = 3117.2646499953607 , rect.x = 3296.976967651385
var b = entity.y - rect.y; // b = NaN , entity.y = 3024.105915848102 , rect.y = 3144.4270586199345
if(isNaN(a)) // isNaN(a) = true
{
console.log("not again >:("); // but console doesn't log
}
//the code continues but its not important
Screenshot der Konsole:
So bin ich wirklich verwirrt und weiß nicht, was mit diesem Thema zu tun.
vielleicht Sie rufen updateCollision schlecht - wie über Sie console.log Einheit und rect und stellen Sie sicher, dass die x/y-Eigenschaften der einzelnen sind eigentlich Zahlen –
Sie sollten etwas mehr nützlich, wie die Werte von 'a' und 'b' anmelden. – Xufox
Bitte aktualisieren Sie die Frage, um ein [mcve] des Problems einzubeziehen. Ihr Screenshot zeigt die Dev-Tools von Chrome und Sie markieren Dinge, während der Code pausiert ist. ** ** zeigt jedoch nicht, auf welche Anweisung Sie pausiert haben ** (die blau markiert wäre). Während also diese Variablen auch diese Werte ab, was auch immer Aussage haben können, ist, es ist eindeutig nicht in diesem Screenshot von Code und nicht gleich zu Beginn dieser Funktion in dem 'a' und 'b' berechnet werden, so haben wir keine Möglichkeit, Ihnen helfen, herauszufinden, was vor sich geht. –