Войти
ПрограммированиеФорумОбщее

помогите с тайлами

Страницы: 1 2 3 Следующая »
#0
10:21, 12 ноя. 2018

Хочу сделать тайлинг как в варкрафте 3
И всё бы ничего но не могу понять что делать когда есть мелкие пропуски между тайлами в одну клетку, подходящих тайлов в наборе нет.
И получается что я не могу следать рамку вокруг тайлов.
Нужно либо избегать таких ситуаций либо проводить какие-то смещения хз даже.
не ок | помогите с тайлами
ne ok tiles | помогите с тайлами

думал что тайлов в наборе нехватает, но эта схема из варкрафта3 так что дело наверное не в тайлах а в том что таких ситуаций быть не должно. но как их избежать


#1
11:15, 12 ноя. 2018

stupid bot
Да, так не получится.
Открой редактор варкрафта/старкрафта и попробуй повторить.

#2
12:26, 12 ноя. 2018

ryzed
тоесть как? просто заполнять пространство центральными тайлами?
у меня за один проход не получается и заполнить пропуски и обернуть тайлы рамками (

#3
12:31, 12 ноя. 2018

stupid bot
нормально все с твоим тайлсетом, просто надо сделать еще один слой или два - на которых собирать недостающие кусочки из нескольких тайлов. Например там где у тебя начало стрелки С2-А-С2 там надо прорисовать два тайла b4 развернутые на соответствующие углы.

Или да брать гдето готовый тайлсет на все комбинации - но таких я не встречал

#4
13:17, 12 ноя. 2018

gambit_oz
если так сделать то все равно тайла внутреннего сгиба для такой узкой щели нет. а если лепить его програмно будет криво и некрасиво.
ne ok 2 | помогите с тайлами
1 тайл слепить можно, но второй нет.

#5
13:23, 12 ноя. 2018

stupid bot
Нет, просто с такой структурой тайлов ты не можешь делать "узкие" полоски.
Та полоска, на которую ты указываешь стрелкой "не ок", должна быть шириной в 2 тайла.
Это если ты хочешь использовать именно варкрафтовскую структуру, где тайл задается значениями в четырех углах.

Вот я тебе сделал овер.
Красные - снег, зеленые - дорога.
Проблемные места будет "дорогой", потому что все 4 угла зеленые.
Изображение

Если просто делать тайлы - тогда просто добавляй нужные.

#6
13:25, 12 ноя. 2018

значит минимальный размер отверстий получается 4 тайла.  (( между линиями 2 пустых тайла должно быть чтобы можно было рамки прорисовать. разобрались ))

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

#7
20:16, 12 ноя. 2018

stupid bot
Тебе нужно типа такого
WC2 summer | помогите с тайлами
В тайле соседствуют макс 2 территории, и не любые: вода-земля, земля-трава, трава-деревья, земля-скалы
Делаешь бинарную маску от 0 до 15 и по ней выбирешь нужный тайл

#8
0:29, 13 ноя. 2018

Aslan
ого, всё в одном круто ))
я кстати так и не понял как делать бинарные маски, поэтому у меня всё на if() { if() {}} и так далее (((
нашел несколько статей как делать маску,  но там инфы мало ( и получилось всё очень криво, тайлы 50% неправильно подбираются. остался на if-ах

#9
6:12, 13 ноя. 2018

stupid bot
ryzed тебе всё правильно нарисовал. на битовых масках делается достаточно легко: нумеруешь углы тайла от 0..3 включительно. каждый угол может быть в самом простом случае либо пустым, либо заполненным. то есть массив из четырёх чисел 0/1. массив из 4 булевых значений можно представить как четырёхбитовое число 0..15:
int code = corners[0] + (corners[1] << 1) + (corners[2] << 2) + (corners[3] << 3);
далее можешь сделать массив из 15 значений, в котором для каждого кода будет описание, где он находится в твоей текстуре тайла.

#10
7:42, 13 ноя. 2018

Suslik
Раз уж пишешь пример кодом - так пиши толком, а?
int code = corners[0] + (corners[1] << 1) + (corners[2] << 2) + (corners[3] << 3);

#11
7:59, 13 ноя. 2018

FordPerfect
да, лажа

#12
12:09, 13 ноя. 2018

FordPerfect
> Раз уж пишешь пример кодом - так пиши толком, а?
Можно даже ссылку с картинками принести.

#13
12:19, 13 ноя. 2018

stupid bot
посмотри еще прожку NeoGuru
https://gamedev.ru/projects/forum/?id=202037

#14
14:44, 13 ноя. 2018

Delfigamer
Ага, теперь я понял, спасибо за ссылку там прямо на пальцах  показано ))
Я походу изначально имел неправильное представление о том как это устроено.
Тут получается тайл нужно рисовать между точками сетки. А я принимал тайл как точку, (есть тайл или нет ) и эта точка ВСЕГДА будет центральным тайлом, и вокруг нее уже прочитывал тайлы которыми какбы  оборачиваю центр.

Два разных подхода. предлагаемый вами выглядит более рациональным, ему нужно всего 4 точки. В моем варианте нужно перебирать 8 соседей вокруг тайла и вставлять "обрезки" вокруг него в пустые клетки
Такой вариант как у меня вообще где-то используется? Если да то какие + и - у него есть ?

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.