|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.06.2013, 06:17 | #31 |
Играюсь с Python
Форумчанин
Регистрация: 12.12.2012
Сообщений: 340
|
phomm
Ты эту тему имел ввиду? Сколько не искал так и не обнаружил скрина с 3д графой ( |
15.06.2013, 11:22 | #32 | |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
Цитата:
Имеет смысл сравнить со скриншотом первой версии http://programmersforum.ru/showpost....3&postcount=10 ПС (для всех) за лето надеюсь добить технодему и снять небольшое промо-видео, после чего ещё один серьезный этап разработки и там уже и релиз второй версии. Последний раз редактировалось phomm; 15.06.2013 в 11:29. |
|
15.06.2013, 12:23 | #33 |
Играюсь с Python
Форумчанин
Регистрация: 12.12.2012
Сообщений: 340
|
Спс за точное целе указание. Я очень не внимательный.
На скрине видно что уже есть частичное 3д, но юниты мне кажется это 2д ориентированные на зрителя плоскости ? Еще увидел зеленое поле для возможных ходов. Как ты определяешь куда (на какой квадрат) указывает мышь ? |
15.06.2013, 13:24 | #34 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
Юниты - спрайты, да (читай описание наполнения сцены в том посте), постоянно повернутые на камеру.
Определение куда указывает мышь сделано в общем алгоритме, бОльшая часть объектов имеет строго известную глубину размещения, и функция движка говорит мне текущую глубину куда указывает мышь, по ней я определяю какой объект сейчас под мышкой, поле же дополнительно рассчитывает прочие координаты , из координат пространства в координаты собственной сетки клеток, простая математика, при этом в соотв поле класса карты записываются координаты текущей клетки, при рендеринге она рисуется другим цветом, помимо признака наведения есть ещё и признак клика. Код вряд ли чего скажет, но вот он Код:
|
15.06.2013, 16:02 | #35 | |||
Играюсь с Python
Форумчанин
Регистрация: 12.12.2012
Сообщений: 340
|
Цитата:
далее ты эти координаты округляешь до координат ближайшего поля. Цитата:
Цитата:
У тебя могут на одной ячейке быть юниты подземные, наземные и воздушные ? |
|||
15.06.2013, 17:21 | #36 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
Каждый кадр опрашивается мышь, функцией движка определяются её 3д координаты по буферу глубины , для всех плоских спрайтовых объектов, юнитов и гуи элементов это позволяет гарантированно определить находится ли мышь на объекте, пиксель в пиксель, для гуи (по логике оно на одной глубине от камеры) сделано небольшое ухищренние - каждый последующий элемент на малую глубже предыдущего, визуально не заметно совсем (там 1 тысячная вроде при разности zNear zFar в сотню), а в результате точное определение всех объектов в пространстве.
Для поля, как я уже описал, берутся 2 координаты - xz, работу по их определению берет на себя движок, и определяется клетка, хотя тут получется своеобразный казус, при анимации спрайта, мышка попадая в "просветы" текстуры, по глубине оказывается на другой клетке, а когда на саму текстуру, то на той же , где стоит юнит )) Для 3мерных объектов такое не прокатит, но по факту у меня это не требуется, все интерактивные объекты в игре будут размещаться строго на поле, без динамики, следовательно определения клетки достаточно, по игровым данным надо определить что на клетке объект и уже обращаться к нему через соотв ссылку. Поэтому аабб или иной другой способ проверки объёмов не требуется. По игре (она настолкой рождена была) 2 существа не могут занимать одну клетку, независимо от способа перемещения, однако есть "трупы", трупов на клетке может быть любое количество, они там стЭкуются и если нет живого бойца на клетке, то показывается "верхний" труп (и с ним можно взаимодействовать), иначе показывается только боец. |
15.06.2013, 17:40 | #37 | |
Играюсь с Python
Форумчанин
Регистрация: 12.12.2012
Сообщений: 340
|
Цитата:
очищал и далее рисовал картинку как обычно. своеобразные select pre-pass получается по цвету (проверку производить по нажатию или несколько раз в сек). У каждого объекта он уникальный, не важно какой нам на них не смотреть лишь бы уникальный. Думаю идею ты понял. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
игра | N1b1V | Общие вопросы .NET | 0 | 06.11.2010 15:49 |
Игра на C++ | Chuvak ot dushi | Общие вопросы C/C++ | 1 | 05.11.2010 15:09 |
Игра | zumm | Софт | 0 | 15.10.2009 13:25 |