The problem here is that the object this: creating your object and calling it manually movementzwill work, because the element thisis the object itself, but with the help setIntervalwill lead to a method for calling withthis === window .
Here is an example:
var room = new Room();
room.movementz();
setInterval(room.movementz, 1000);
, , movementz setInterval, this window, , , , room this. bind, :
var room = new Room(),
players = "hello";
setInterval(room.movementz, 1000);
// this will output "hello" because this === window
setInterval(room.movementz.bind(room), 1000);
// this will output [], because now this === room