Вам нужно использовать замыкание там:
setInterval(function(){
render(things);
},40);
setInterval
принимает функцию обратного вызова (функция с именем без ()
), но когда вы делаете:
setInterval(render(things), 40);
Вы на самом деле вызываете функцию (из-за (things)
круглых скобок) прямо там внутри setInterval
, что неправильно.