JavaFX Сброс графического контекста

Я работаю над видеоигрой, которая перерисовывает каждые 1/60 секунды с помощью Kotlin и TornadoFX / JavaFX. В настоящее время моя программа перерисовывается, устанавливая фоновое изображение на белый и рисуя его. Тем не менее, я бы предпочел что-то, что немного чище. Вот как я его сейчас рисую:

private fun drawShapes(gc: GraphicsContext) { gc.fill = c(255, 255, 255) gc.fillRect(0.0, 0.0, 700.0, 700.0) //Game is 700x700 gc.fill = c(94, 132, 233) walls.forEach { gc.fillRect(it.x.toDouble(), it.y.toDouble(), it.w.toDouble(), it.h.toDouble()) } gc.fill = c(255, 239, 20) coins.filter { !it.collected }.forEach { gc.fillRect(it.x.toDouble(), it.y.toDouble(), it.w.toDouble(), it.h.toDouble()) } //Cut off here because following is more of same } fixedRateTimer(period = 16, initialDelay = 500) { drawShapes(graphicsContext2D) } 

Есть ли способ просто протирать его чистым, а не перекладывать много друг на друга? Я пробовал искать в Интернете, но ничего не нашел.

Оказывается, на самом деле нет способа сделать это. Однако заглушение холста и его повторное рисование не вызвали никаких проблем. Проблемы вызывают еще одну часть программы.

Если фон вашей игры будет последовательно белым, я бы подумал о том, чтобы вставить панель за холстом с белым фоном. Вы все равно можете рисовать изображения переднего плана так же, как и в настоящее время, а затем для очистки холста между фреймами используйте clearRect .

 gc.clearRect(0.0, 0.0, 700.0, 700.0); 
Intereting Posts
rxjava2 – простой пример выполнения задач в пуле потоков, подписывается на один поток NullPointerException для android.support.v4.app.NotificationCompatBase $ Action.getIcon () Область применения верхнего уровня Kotlin Аннотатор Android Studio StyleRes дает предупреждение о Kotlin var RxKotlin collectInto () MutableList с использованием ссылок на методы Котлин: Что такое kotlin.String! тип Ошибка вывода типа Kotlin – несоответствие типа «Найденный массив <*?>, Требуемый массив <*>?" Как отправить текстовые данные на канал Thinkspeak из приложения Android? Не удается получить доступ к внешнему классу из анонимного класса Быстрый способ инициализации дочернего класса Kotlin с свойствами экземпляра родительского класса Могу ли я импортировать библиотеку в Kotlin в мой проект андроида (использует java) Несоответствие типа приемника с макетами Anko Jinq в Kotlin – как конвертировать лямбда в java SerializedLambda? Нет аргументов типа, ожидаемых для fun findViewById (p0: Int): View Как проверить, что изображение было изменено, если в коде HTML нет изменений?