Конвертировать 2D симплексный шум в 1D?

Хорошо, я работаю над небольшой игрой здесь на Java и использую генератор Simplex Noise, который я нашел в Интернете. Проблема, с которой я сталкиваюсь, заключается в следующем: я создаю мир моей игры примерно так:

int width = 100;
int height = 100;
world = new int[width * height];

SimplexNoise noise = new SimplexNoise();
for (int i = 0; i < world.length; i++) {
     int x = i % width; // what are the coordinates from i ?
     int y = i / width ;


     int frequency = 15; 


     float h = (float) noise.noise((float) x / frequency, (float) y / frequency); 

         if (h >= -1 && h <= 0) {
                world[x + y * width] = 0; // air tile

         }
         else if (h > 0 && h <= 1) {
                world[x + y * width] = 1; // test tile

         }

      }

что совершенно очевидно дает мне 2D шум. Конечный результат выглядит так: смотреть

Насколько я понимаю шум, 2D шум для игр сверху вниз. Тот, над которым я работаю, это боковой скроллер (например, Terraria, Starbound, Crea и другие). Так что мне нужен терраген, чтобы дать мне самый верхний слой ландшафта, Google говорит мне, что это 1D шум, поэтому возникает вопрос: как преобразовать этот 2D шум в ландшафтный 1D шум?

1 ответ

Просто сделай снимок высоты = 1. Готово:)

Другие вопросы по тегам