Подредактировал описание, возможно не совсем точно выразился.
Но ваш ответ подходит.
Т.е. мне в цикле
function loop () {
requestAnimationFrame(loop);
//...
}
Нужно добавить таймер setInterval, который при срабатывании будет вызывать обновление змейки?