private fun moveOneWay(originalPosition: Int, newPosition: Int, vertical: Boolean) { if (vertical) { translateTransition.fromY = pos[originalPosition - 1].centerX - 11.0 translateTransition.toY = pos[newPosition - 1].centerX - 11.0 } else { translateTransition.fromX = pos[originalPosition - 1].centerX - 11.0 translateTransition.toX = pos[newPosition - 1].centerX - 11.0 } translateTransition.play() } private fun moveUpRight(originalPosition: Int, newPosition: Int) { val upTo = 11 - originalPosition val sequentialTransition = SequentialTransition() val secondTranslateTransition = TranslateTransition(Duration.millis(2000.0), pawn) translateTransition.fromY = pos[originalPosition - 1].centerX - 11.0 translateTransition.toY = pos[upTo - 1].centerX - 11.0 secondTranslateTransition.fromX = pos[11 - 1].centerX - 11.0 secondTranslateTransition.toX = pos[newPosition - 1].centerX - 11.0 sequentialTransition.children.addAll( translateTransition, secondTranslateTransition ) sequentialTransition.play() }