Проведение исследований, прежде чем начинать что-то, является хорошей идеей, поэтому я рассматривал статьи здесь, в Stackverflow, перед началом проекта.Java Tilemaps с помощью Cliping для увеличения частоты кадров: что может пойти WRONG?
Теперь при поиске tilemaps один из других вопросов, приводят меня к одной из Java Учебники, в частности, эта страница (http://docs.oracle.com/javase/tutorial/uiswing/painting/step3.html) где-то привлекло мое внимание, это:
private void moveSquare(int x, int y) {
int OFFSET = 1;
if ((squareX!=x) || (squareY!=y)) {
repaint(squareX,squareY,squareW+OFFSET,squareH+OFFSET);
squareX=x;
squareY=y;
repaint(squareX,squareY,squareW+OFFSET,squareH+OFFSET);
}
}
Для тех, кто не знать, что происходит, когда краска называется красным квадратом, рисуется в квадрате X, squareY, это метод, который позволяет вам изменять квадрат и квадрат, и это ускоряет процесс перерисовки, сообщая Java, чтобы ограничить область, которая будет перерисована только старые и новые местоположения (это два вызова перекрашивать)
Теперь это звучит как-то что я должен использовать, когда плитка обновляется, ее координаты перекрашиваются, но в tilemaps обычно входят 2d-массивы и цикл по всему массиву при рисовании, возможно, с участием нескольких изображений в одном месте, и в то время как большая часть карты не перерисовывается который все еще может замедлить его.
Таким образом, вы добавляете к себе плитки, которые отмечают, изменилось или нет что-то изменившееся, что привело бы к тому, что оно изменилось с тех пор, как в последний раз все было нарисовано, и только место для изображений, которые изменились.
Это хорошо работает, пока что-то вроде окна, в которое вставляются графики, проходит цикл минимума/максимума, теперь каждая плитка нуждается в обновлении графики, но ни один из них не будет помечен как таковой, что приведет к пустым экранам.
Что является лучшим для этого?
А что еще я пропустил?