Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.27;
Скачать: CL | DM;

Вниз

Гексагональная сетка   Найти похожие ветки 

 
TButton ©   (2004-12-02 15:37) [0]

Та что была в Героях Меча и Магии, та что была в Фалауте1(2). та самая сетка (карта) состоящая из 6ти угольных сот.
есть мысли как ее можно реализовать?
у меня, например нет...
а надо...
а нет...
конкретно. требо, чтоб карта в игре состояла не из четырех угольных а из шестиугольных клеток.


 
TButton ©   (2004-12-02 19:15) [1]

возникла мысль.
TCell = record
 x, y: integer; // эккранные координаты
 neig: array[1..6] of PCell; // соседние клетки
 ...
end;

PCell = ^TCell

TMap = array of TCell


еще предложения будут?


 
cyborg ©   (2004-12-02 20:11) [2]

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


 
Darthman ©   (2004-12-02 21:46) [3]

В фаллауте рисуются прямоугольные тайлы. А вот клеточки сделаны хексами. Так удобнее.


 
Mihey_temporary ©   (2004-12-02 21:51) [4]

Есть куча статей, если тут не ответят - поищи.


 
TButton ©   (2004-12-02 22:22) [5]


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

вот это я нартсовал и опредилил, а потом еще и пост сюда кинул набр ту. а вот хранение клеток это вопрос то-ли линейный массив, то-ли двухмерный. надо по думать.

> В фаллауте рисуются прямоугольные тайлы. А вот клеточки
> сделаны хексами. Так удобнее.

ну, скажем, тайлы они всяко-разно будут двухмерные, недвухмерных битмапов пока не придумали.

> Есть куча статей, если тут не ответят - поищи.

да я думаю найдем решение.


 
TButton ©   (2004-12-02 23:00) [6]


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

а определил я всю ету фигню так.
{нумерация X, Y и клеток начинается с единицы}
n:=(cell.Y-1)*map.Width+X;
cell.neigh[1]:=n-map.Width;
cell.neigh[2]:=n-map.Width+1;
cell.neigh[3]:=n+1;
cell.neigh[4]:=n+map.Width+1;
cell.neigh[5]:=n+map.Width;
cell.neigh[6]:=n-1;

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


 
П7   (2004-12-03 07:24) [7]

могу прислать пример рисования гексогональной сетки. Отправь письмо с темой топика на reijii@animka.com.
А в Фоллауте было заранее известное количество гексов по вертикали и горизонтали и соседние вычислялись на основе этих размеров. Но, как правильно заметили, тайлы там изометрические, только угол "поворота камеры" не стандартный...



Страницы: 1 вся ветка

Текущий архив: 2005.02.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.046 c
14-1107722684
wl
2005-02-06 23:44
2005.02.27
Российская гуманитарная помощь


1-1108469073
Серж_Евдокимов
2005-02-15 15:04
2005.02.27
В проекте несколько frames. Как добавить один из них на форму


3-1106668577
fess
2005-01-25 18:56
2005.02.27
Сортировка в компоненте ADOTable


6-1103390843
frEE)stylEr
2004-12-18 20:27
2005.02.27
ПОМОГИТЕ с получением e-mail !!!!


1-1107949648
Gost
2005-02-09 14:47
2005.02.27
Как вынуть названия полей таблицы и запихнуть их в ComboBox?