![]() |
Изометрия. Что первым рендериться, что вторым и тд
Собственно, что-то у меня не совсем получается. Через поиск тоже ничего не нашёл, в общем, как это реализовать, чтобы всё быстро работало, не используя сетку, а используя только координаты объектов?
Зы: Вид сверху-сбоку, надо чтобы нужный объект был за нужным объектом а не на нём. И наоборот. |
Re: Изометрия. Что первым рендериться, что вторым и тд
Че то толком не понял вопрос, ты юзаешь DrawImage? Если да то если хош чтобы объект рендерился поверх других то DrawImage ставь перед всеми ресуемыми рисунками, и все должно работать.
зы. Толком не понял вопр. |
Re: Изометрия. Что первым рендериться, что вторым и тд
Цитата:
|
Re: Изометрия. Что первым рендериться, что вторым и тд
Это я знаю, я о другом. Как правильно их на сцене расставить, чтобы когда один объект ниже другого, он рендорится вторым, если выши, то первым, тоесть перекрывается другим. Вот с этим я не могу разобраться...
Вернее проблема с проверкой, что ниже, что выше, когда объектов много. |
Re: Изометрия. Что первым рендериться, что вторым и тд
Цитата:
|
Re: Изометрия. Что первым рендериться, что вторым и тд
Да проверять нужно только У..., но, с кодом я запутался. Не получается. По идеи надо создать список объктов по порядку стоящих по у и потом в зависимости от этого списка их отрисовывать, но этот список чтото мне никак не получается создать... тоесть написать код, который его создаёт.
|
Re: Изометрия. Что первым рендериться, что вторым и тд
Список объектов? Юзаем типы.
|
Re: Изометрия. Что первым рендериться, что вторым и тд
Можо так сделать.
Ссылки на картинки всех объектов находятся в одном списке. У каждого эелемента списка есть свой приоритет. После просчета логики все объекты рисуются из списка в одном месте в порядке увеличения их приоритета. Допустим, есть игрок, который должен быть то под домом, то перед домом, в зависимости от его положения на карте. Если считать, что координаты объекта задают одну из верхних вершин, то достаточно проверять такое условие: Код:
if player.y + player.height < house.y + house.height then Перед рендером сортируешь список и рисуешь. |
Re: Изометрия. Что первым рендериться, что вторым и тд
2alcoSHoLiK
Натолкнуло на мысль сделать так: Получить список объектов и потом проверять по очереди, если позиция 0 объекта по у меньше чем у 1, то менять их местами в списке, потом так между 1 и 2, 2 и 3 и тд... наконец-то заработало, спасибо. |
Re: Изометрия. Что первым рендериться, что вторым и тд
Жалко, в блице нету команды задачи глубины рисования - было бы куда проще ИМХО
|
Re: Изометрия. Что первым рендериться, что вторым и тд
Progger_Leo
ну зделай себе систему слоев как в фотошопе ... тоже самое :) и делать ее минут 5-20 (в зависимости от того чего хочеш) |
Re: Изометрия. Что первым рендериться, что вторым и тд
Спс, пока не надо ;)
|
Re: Изометрия. Что первым рендериться, что вторым и тд
Я хочу развить тему......
А если у тебя юниты 3-х мерные - как быть? Суть проблеммы : Все 3Д юниты будут рендерятся за один проход функции RenderWorld() тоесть отдельному юниту никак нельзя поставить свою очередь рендера.....знаю - есть EntityOrder() - но эта функция перекалашматит анимированный обьект до неузнаваемости......А если зеленый и желтый обьекты попадут в кадр одновременно.....причем один За забором а другой ПЕРЕД забором......как тогда быть? |
Re: Изометрия. Что первым рендериться, что вторым и тд
Diablo1909
если обьекты 3д, а забор 2д, то банально сделай забор 3д :) смешаная техника особо не применяется :) ps. или я чето не понял ? устал просто |
Re: Изометрия. Что первым рендериться, что вторым и тд
на крайняк можно и в два прохода отрендерить.
сначала юниты за забором, потом забор,потом перед забором(конечно с вырубленной отчисткой екрана для камеры) (ессено если забор будет тока один - дальше хуже). ЗЫ: Цитата:
|
Часовой пояс GMT +4, время: 21:51. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot