Deine Variable ist lokal definiert, weshalb jegliche Änderung einer bspw. globalen Variable mit dem gleichen Namen keinen Effekt auf diese in der entsprechenden Funktion haben kann.
Die Bedingung in deiner while-Schleife ist zudem stets wahr, da du den Wert der Variablen nX nicht mit 1 vergleichst, sondern nX immer wieder auf 1 setzt. "=" ist der Zuweisungsoperator, "==" der Vergleichsoperator.
Eine kürzere Variante, bei welcher dieser Fehler nicht auftreten kann, ist folgende Methode:
var i = 1;
while(i) // stets wahr, solange i ungleich 0 ist
{
if(key_space) i = 0;
wait(1);
}