Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2013, 06:17   #31
intmain
Играюсь с Python
Форумчанин
 
Аватар для intmain
 
Регистрация: 12.12.2012
Сообщений: 340
По умолчанию

phomm
Ты эту тему имел ввиду?
Сколько не искал так и не обнаружил скрина с 3д графой (
Что ел то - в долг, что жил то - зря.
Для избранных. ))
Секретные разработки
intmain вне форума Ответить с цитированием
Старый 15.06.2013, 11:22   #32
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение

...
Картинка большая, корячит страницу форума, поэтому ссылкой, с моего сайта вряд ли она пропадёт.
...
http://phomm.narod.ru/games/ittd.png
за подробностями см. оригинальный пост (стрелочка > в цитате).
Имеет смысл сравнить со скриншотом первой версии
http://programmersforum.ru/showpost....3&postcount=10

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

Последний раз редактировалось phomm; 15.06.2013 в 11:29.
phomm вне форума Ответить с цитированием
Старый 15.06.2013, 12:23   #33
intmain
Играюсь с Python
Форумчанин
 
Аватар для intmain
 
Регистрация: 12.12.2012
Сообщений: 340
По умолчанию

Спс за точное целе указание. Я очень не внимательный.
На скрине видно что уже есть частичное 3д, но юниты мне кажется это 2д ориентированные на зрителя плоскости ?

Еще увидел зеленое поле для возможных ходов.
Как ты определяешь куда (на какой квадрат) указывает мышь ?
Что ел то - в долг, что жил то - зря.
Для избранных. ))
Секретные разработки
intmain вне форума Ответить с цитированием
Старый 15.06.2013, 13:24   #34
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Юниты - спрайты, да (читай описание наполнения сцены в том посте), постоянно повернутые на камеру.
Определение куда указывает мышь сделано в общем алгоритме, бОльшая часть объектов имеет строго известную глубину размещения, и функция движка говорит мне текущую глубину куда указывает мышь, по ней я определяю какой объект сейчас под мышкой, поле же дополнительно рассчитывает прочие координаты , из координат пространства в координаты собственной сетки клеток, простая математика, при этом в соотв поле класса карты записываются координаты текущей клетки, при рендеринге она рисуется другим цветом, помимо признака наведения есть ещё и признак клика.
Код вряд ли чего скажет, но вот он
Код:
function CField.CoordsToCell(Coords: TPoint2): TPoint2i;
begin
  Result := Point2i(FSize.X / 2 + Coords.x / FCellScale, FSize.Y / 2 + Coords.y / FCellScale);
end;
Приходит преобразованная к 2мерной (из 3мерной с отбросом высоты, а именно У координаты) точка в пространстве, по ней с учётом размера и масштаба клеток получаем номер текущей клетки
phomm вне форума Ответить с цитированием
Старый 15.06.2013, 16:02   #35
intmain
Играюсь с Python
Форумчанин
 
Аватар для intmain
 
Регистрация: 12.12.2012
Сообщений: 340
Лампочка

Цитата:
Определение куда указывает мышь сделано в общем алгоритме
т.е. ты на каждом кадре имеешь доступ к глобальным переменным cur_world_mouse_pos x.y.z ? грубо говоря где-то вызавается glReadPixels (...Zbuffer )
далее ты эти координаты округляешь до координат ближайшего поля.

Цитата:
Код вряд ли чего скажет, но вот он
ну почему же напротив, я вижу что тут.

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

У тебя могут на одной ячейке быть юниты подземные, наземные и воздушные ?
Что ел то - в долг, что жил то - зря.
Для избранных. ))
Секретные разработки
intmain вне форума Ответить с цитированием
Старый 15.06.2013, 17:21   #36
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Каждый кадр опрашивается мышь, функцией движка определяются её 3д координаты по буферу глубины , для всех плоских спрайтовых объектов, юнитов и гуи элементов это позволяет гарантированно определить находится ли мышь на объекте, пиксель в пиксель, для гуи (по логике оно на одной глубине от камеры) сделано небольшое ухищренние - каждый последующий элемент на малую глубже предыдущего, визуально не заметно совсем (там 1 тысячная вроде при разности zNear zFar в сотню), а в результате точное определение всех объектов в пространстве.
Для поля, как я уже описал, берутся 2 координаты - xz, работу по их определению берет на себя движок, и определяется клетка, хотя тут получется своеобразный казус, при анимации спрайта, мышка попадая в "просветы" текстуры, по глубине оказывается на другой клетке, а когда на саму текстуру, то на той же , где стоит юнит ))
Для 3мерных объектов такое не прокатит, но по факту у меня это не требуется, все интерактивные объекты в игре будут размещаться строго на поле, без динамики, следовательно определения клетки достаточно, по игровым данным надо определить что на клетке объект и уже обращаться к нему через соотв ссылку. Поэтому аабб или иной другой способ проверки объёмов не требуется.

По игре (она настолкой рождена была) 2 существа не могут занимать одну клетку, независимо от способа перемещения, однако есть "трупы", трупов на клетке может быть любое количество, они там стЭкуются и если нет живого бойца на клетке, то показывается "верхний" труп (и с ним можно взаимодействовать), иначе показывается только боец.
phomm вне форума Ответить с цитированием
Старый 15.06.2013, 17:40   #37
intmain
Играюсь с Python
Форумчанин
 
Аватар для intmain
 
Регистрация: 12.12.2012
Сообщений: 340
По умолчанию

Цитата:
мышка попадая в "просветы" текстуры, по глубине оказывается на другой клетке, а когда на саму текстуру, то на той же , где стоит юнит ))
я бы сделал выделение в отдельный предпрорисовочный проход и рисовал бы там юнитов не спрайтими, а полностью прямоугольниками во весь объем клетки и именно от попадания в него делал предположение о выделении юнита на клетке.
очищал и далее рисовал картинку как обычно.
своеобразные select pre-pass получается по цвету (проверку производить по нажатию или несколько раз в сек). У каждого объекта он уникальный, не важно какой нам на них не смотреть лишь бы уникальный.
Думаю идею ты понял.
Что ел то - в долг, что жил то - зря.
Для избранных. ))
Секретные разработки
intmain вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
игра 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