Решил реализовать генерацию карты в GameEngine. Думал-думал над алгоритмом генерации, пришло в голову только такое не сложное решение решение. Спрайты 32х32. Размер карты 64х32 спрайта. На карте есть центр(32х16) и от этого центра по кругу до определённого момента всё заполняется травой. С определённого момента происходит случайное заполнение травы и песка. После пары блоков заполняется всё песком, а потом с некоторой вероятностью всё заполняется песком и водой. Ну и оставшиеся блоки - это вода. Так же реализовал полноэкранный режим с изменением разрешения экрана. И передвижение по карте с помощью клавиш WASD. Всё сделано по-еврейски, сильно не пинать. Может у кого появятся какие-то идеи по улучшению алгоритма с добавлением новых блоков, либо кому-то известны алгоритмы генерации карт?
http://forum.hiasm.com/forum_serv.php?q=56&id=3744
Ах да, что бы выйти, просто нажмите Esc
Этот топик читают: Гость
Ответов: 77
Рейтинг: 5
|
|||
карма: 1 |
|
Ответов: 1536
Рейтинг: 176
|
|||
TreC, WASD
|
|||
карма: 1 |
|
Ответов: 8930
Рейтинг: 823
|
|||
TreC писал(а): ..Так же реализовал полноэкранный режим с изменением разрешения экрана..(Менять, так менять, ставьте частоту 240 Гц, чтобы в глазах не рябило! ) |
|||
карма: 19 |
|
Ответов: 77
Рейтинг: 5
|
|||
ser_davkin, спасибо за умное сокращение схемы.
Леонид, например у меня, на моём слабом ноутбуке в полноэкранном режиме без изменения размера экрана всё жутко тормозит. ------------ Дoбавленo в 16.34: Не тут-то былоser_davkin, попробуйте нажать две противоположные клавиши одновременно(в лево, в право). Происходит жуткая картина. |
|||
карма: 1 |
|
Ответов: 1536
Рейтинг: 176
|
|||
WSAD
|
|||
карма: 1 |
|
Ответов: 77
Рейтинг: 5
|
|||
ser_davkin, спасибо, очень поучительный пример)
|
|||
карма: 1 |
|
Ответов: 2290
Рейтинг: 678
|
|||
TreC писал(а): Может у кого появятся какие-то идеи по улучшению алгоритмаЛеонид писал(а): Процедура doRandomize устанавливает генератор в зависимости от тиков процессора, прошедших от момента включения компьютера, в некое промежуточное положение (от первого до последнего) и с этого положения генератор выдаёт свои числа. Делением на 2^N числа переводятся в диапазон 0<=RND<1, а уж с этими числами работает наш элемент.Отсюда и следует, что doRandomize надо делать один раз, более того последующие doRandomize только занимают процессорное время, никак не улучшая псевдослучайную последовательность. |
|||
карма: 11 |
|
7