Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 12.06.2015, 17:20
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 1  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
По умолчанию Генерация мира

Нужен генератор мира, но подумал, зачем делать велосипед, возможно, кто-то имеет догадки о том, как делался генератор мира террарии, или может помочь с оптимизацией и упрощением логики. А может, кто-то просто имеет знакомых разработчиков террарии, и уже давно поинтересовался этим делом.



Итак, идея в чём:

Нужно сделать мир в виде парящего островка.
Размеры островка варьируются от 1200 пкс на 700 до 2500 на 1000.
(при блоке в 25 пкс)

Форма должна быть рандомной, но иметь горы, ямы и что-то в форме сталактитов снизу(разумеется, всё с помощью блоков песка, травы, дерева и т.д.).
Горы между собой могут пересекаться, ямы же не могут пересекаться с горами(хотя, возможно, это не верно - если так не нужно, поправьте меня)

Как я себе это представляю:
1)Генерация квадрата с размерами - 1200 + int(Math.random()*(2500 - 1200)), 700 + int(Math.random()*(1000 - 700)).

2)Разместить скелет, который будет обрастать землёй - полоску земли ровно по вертикальному центру.

3)Задать пределы гор(минимум - 2 горы, максимум - 6)

4)Рандомно определить, сколько будет гор и циклом "нарастить" их в рандомных местах, также размеры гор рандомно.

5)Нарастить ещё некоторую толщу земли, но в местах, прилегающих к границам прямоугольника делать это рандомно.

6)Алгоритм создания ямы
Код:
результирующая точка = Math.random() * ширина прямоугольника;
если(задевает зону горы)
{
   результирующая точка = рекурсия;
}
7) Сталактиты уже более-менее понятно, как реализовать.

Хотелось бы максимально естественно сформировать островок.

MODIFY:

8) Как быть с пещерами - вот вопрос?

MODIFY:

Мысль насчёт пещер - сделать около 50 рандомных точек на карте, и те, что близко друг к другу - объединить коридорами. Но как-то это не очень естественно, жду дальнейших идей.

MODIFY:

Заметил, что, действительно, неверна идея с ямами. Они должны пересекаться и с горами, потому, что горы могут занимать по размерам абсолютно всё пространство на карте(ибо размещение их случайно).
А также это очевидно при взгляде на вставленное изображение.
__________________
There is no thing in this world that is not simple.


Последний раз редактировалось ZackMercury; 12.06.2015 в 19:02.
Создать новую тему   Часовой пояс GMT +4, время: 21:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:11.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.