2012-03-14 4 views
0

Еще один быстрый вопрос, если кто-то до него. У меня есть этот код:Java 2D: визуализируйте очень много фрагментов на экране быстро

 for(int cy = 0; cy < 3; cy++) { 
      for(int cx = 0; cx < 3; cx++) { 
       for(int y = 0; y < 16; y++) { 
        for(int x = 0; x < 16; x++) { 
         g2D.drawImage(Tiles.tileImages.get(C0.chunk[x][y][cx][cy]), 
           C0.cX[cx][cy] * cspcr + (blckspcr * x) + width - pXspcr, 
           C0.cY[cx][cy] * cspcr + (blckspcr * y) + height - pYspcr + (int)(24.25 * zoom), 
            blckspcr, blckspcr, null); 
         if(C0.chunk[x][y][cx][cy].equals("a05")) { 
          g2D.drawImage(Tiles.treetop, 
            C0.cX[cx][cy] * cspcr + (blckspcr * x) + width - pXspcr, 
            C0.cY[cx][cy] * cspcr + (blckspcr * y) + height - pYspcr + (int)(24.25 * zoom) - blckspcr, 
            blckspcr, blckspcr, null); 
         } 
        } 
       } 
      } 
     } 

, но моя проблема в том, что создает невероятно большое запаздывание количества в моем приложении. Есть ли способ, которым я мог бы избежать использования большого количества петель, которые у меня есть или, возможно, ускорить его? Образ, который он рисует первым, захватывает блоки из кусков в 4D массиве строк и получает изображения из хэш-карты на основе строки, а затем рисует изображение, используя кучу чисел. Если кто-нибудь может помочь, я бы очень признателен. Благодаря!

ответ

1

Вам необходимо сохранить данные по-другому (массив 4D - это почти всегда плохая идея).

Вы можете приступить к замене этих четырехмерных строк строк, возможно, хешем, если он подходит к вашему usecase (тогда у вас будет только один цикл).

+0

Как я мог реализовать это? Как я могу хранить массив 4D в хеше? – MrDrProfessorTyler

+0

Вы можете сказать нам, почему вы используете 4D-массивы. Какие данные он представляет? –

+0

Значения данных, загружаемых из файла в виде строки, для доступа к хэш-карте, чтобы получить изображение для рисования на экране. Я использую 4D, потому что легко получить доступ, чтобы разрешить разбиение карты. – MrDrProfessorTyler

 Смежные вопросы

  • Нет связанных вопросов^_^