Как я могу использовать алгоритм для случайной генерации «карты» с использованием предустановленных изображений? - PullRequest
0 голосов
/ 03 мая 2011

Я работаю с некоторым JavaScript, чтобы создать красивое маленькое изображение «карта». Я не имею в виду карту изображения, как отображение частей изображения, но я имею в виду, что предварительно установленные изображения образуют массив, отображаемый в соответствии с заданным шаблоном, созданным алгоритмом.

Как сделать так, чтобы на изображениях был какой-то базовый шаблон?

[править 1]

Я понимаю, что мне нужно было бы сначала сделать изображения по столбцам, а затем по строкам.

*** Я сейчас переписываю формат, чтобы сделать вышеприведенную строку.

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

[/ edit 1]

[править 2]

Вот ссылка на то, что он делает до сих пор: http://cl.ly/2s1h213E332r3i3v2a01

Вот почтовый индекс сайта: http://cl.ly/1T0f2P1G333T1N1u0c31

Я пытаюсь сделать его более организованным, как я описал в [править 1].

[/ edit 2]

<html>
<body>
<script type="text/javascript">

var blockList = 'air,stone,grass,dirt,cobble,plank';

function blockGetId(ID) {
    var blockGet = blockList.split(",")[ID];
    return '<img src="images/' + blockGet + '.png" />';
}

function blockRandom() {
    var blockCount = blockList.split(",").length;
    var blockId = Math.round(Math.random()*(blockCount-1));
    document.write(blockGetId(blockId));
}

function rowTable(width) {
    var w = 0;

    while ( w < width ) {
        document.write('<td class="cell">');
        blockRandom();
        document.write(' </td>');
        w++;
    }
}

function blockTable(width, height) {
    var h = 0;

    document.write('<table class="cell"><style>.cell{width:16px;height:16px;colspacing:0px;margin:0px;padding:0px;}.cell hover{border: 5px;}</style>');
    while ( h < height ) {
        document.write('<tr class="cell">');
        rowTable(width);
        document.write('</tr>');
        h++;
    }
    document.write('</table>');
}

blockTable(25,25);

</script>
</body>
</html>

1 Ответ

0 голосов
/ 04 мая 2011

Взгляните на блог Амит Патель о простой генерации карт . Это может вдохновить вас на алгоритм генерации карт. Карта использует шум Перлина .

...