Tim34, ничего не понятно по описанию, но попробуй сделать по такой схеме - Движение вверх, после alarm[0] = 2(секунды)*room_speed смена направления. И потом заново. ///
Можете погуглить "tween functions" / "easing". В вашем случае вроде должна подойти "easeOutQuad" или "easeInOutCube". Поиграйтесь здесь. Готовый ассет здесь.
Нативная реализация easeOutQuad может выглядеть так (синтаксические ошибки исправите сами):