Я работаю над проектом генерации лабиринтов с использованием Java, swing и Java2D. Я довольно новичок в Java2D, поэтому, пожалуйста, извините меня, если этот вопрос является новичком.Лучший способ избежать перерисовки всего лабиринта?
В принципе, у меня есть успешно сгенерированный лабиринт. Я хочу нарисовать этот лабиринт на пользовательском JPanel, который я настроил и правильно переопределил PaintComponent. Проблема, которую я сейчас имею, заключается в том, что у меня есть способность рисовать лабиринт, но каждый раз, когда я перерисовываю ее, она исчезает. Я решил это, перерисовывая лабиринт каждый раз, когда вызывается repaint(), но это кажется ужасно неэффективным. Поскольку лабиринт не меняется, зачем мне его перерисовывать?
Итак, мой вопрос заключается в следующем: есть ли способ «кэшировать» рисунок лабиринта, поэтому мне не нужно тратить циклы, перерисовывая его каждый раз? Я могу видеть его перерисовку каждый раз, когда исключительно большие лабиринты являются основным источником замедлений.
Спасибо!
Если рисование в 'paintComponent' с двойной двойной буферизацией' super.PaintComponent' не должно давать эффекты краски. Не много создания или других дорогостоящих операций при рисовании, а не «перекрашивать» в paintComponent. Меньше repaints, 'repaint (50L)' лучше. –