forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Изометрия. Что первым рендериться, что вторым и тд (http://forum.boolean.name/showthread.php?t=3413)

Earlind 20.05.2007 12:50

Изометрия. Что первым рендериться, что вторым и тд
 
Собственно, что-то у меня не совсем получается. Через поиск тоже ничего не нашёл, в общем, как это реализовать, чтобы всё быстро работало, не используя сетку, а используя только координаты объектов?

Зы: Вид сверху-сбоку, надо чтобы нужный объект был за нужным объектом а не на нём. И наоборот.

mr.DIMAS 20.05.2007 12:55

Re: Изометрия. Что первым рендериться, что вторым и тд
 
Че то толком не понял вопрос, ты юзаешь DrawImage? Если да то если хош чтобы объект рендерился поверх других то DrawImage ставь перед всеми ресуемыми рисунками, и все должно работать.
зы. Толком не понял вопр.

johnk 20.05.2007 13:01

Re: Изометрия. Что первым рендериться, что вторым и тд
 
Цитата:

то DrawImage ставь перед всеми ресуемыми рисунками, и все должно работать.
Так обьект будет рисоваться перед всеми, то сеть под.

Earlind 20.05.2007 13:03

Re: Изометрия. Что первым рендериться, что вторым и тд
 
Это я знаю, я о другом. Как правильно их на сцене расставить, чтобы когда один объект ниже другого, он рендорится вторым, если выши, то первым, тоесть перекрывается другим. Вот с этим я не могу разобраться...

Вернее проблема с проверкой, что ниже, что выше, когда объектов много.

mr.DIMAS 20.05.2007 13:05

Re: Изометрия. Что первым рендериться, что вторым и тд
 
Цитата:

Это я знаю, я о другом. Как правильно их на сцене расставить, чтобы когда один объект ниже другого, он рендорится вторым, если выши, то первым, тоесть перекрывается другим. Вот с этим я не могу разобраться...
проверять Y и Х и взависимости от них рендерить рисунок. помойму так

Earlind 20.05.2007 13:10

Re: Изометрия. Что первым рендериться, что вторым и тд
 
Да проверять нужно только У..., но, с кодом я запутался. Не получается. По идеи надо создать список объктов по порядку стоящих по у и потом в зависимости от этого списка их отрисовывать, но этот список чтото мне никак не получается создать... тоесть написать код, который его создаёт.

mr.DIMAS 20.05.2007 13:15

Re: Изометрия. Что первым рендериться, что вторым и тд
 
Список объектов? Юзаем типы.

alcoSHoLiK 20.05.2007 13:18

Re: Изометрия. Что первым рендериться, что вторым и тд
 
Можо так сделать.
Ссылки на картинки всех объектов находятся в одном списке. У каждого эелемента списка есть свой приоритет. После просчета логики все объекты рисуются из списка в одном месте в порядке увеличения их приоритета.
Допустим, есть игрок, который должен быть то под домом, то перед домом, в зависимости от его положения на карте. Если считать, что координаты объекта задают одну из верхних вершин, то достаточно проверять такое условие:
Код:

if player.y + player.height < house.y + house.height then
    ; сделать приоритет player меньше, чтобы он рисовался раньше
else
    ; сделать приоритет player больше, чтобы он рисовался позже
end if

Тут house.height - это не высота картинки, а высота дома, которая задается программистом. Должно быть понятно.
Перед рендером сортируешь список и рисуешь.

Earlind 20.05.2007 13:39

Re: Изометрия. Что первым рендериться, что вторым и тд
 
2alcoSHoLiK

Натолкнуло на мысль сделать так:
Получить список объектов и потом проверять по очереди, если позиция 0 объекта по у меньше чем у 1, то менять их местами в списке, потом так между 1 и 2, 2 и 3 и тд... наконец-то заработало, спасибо.

Progger_Leo 20.05.2007 14:40

Re: Изометрия. Что первым рендериться, что вторым и тд
 
Жалко, в блице нету команды задачи глубины рисования - было бы куда проще ИМХО

jimon 20.05.2007 19:10

Re: Изометрия. Что первым рендериться, что вторым и тд
 
Progger_Leo
ну зделай себе систему слоев как в фотошопе ... тоже самое :)
и делать ее минут 5-20 (в зависимости от того чего хочеш)

Progger_Leo 22.05.2007 11:51

Re: Изометрия. Что первым рендериться, что вторым и тд
 
Спс, пока не надо ;)

Черный крыс 21.06.2007 00:42

Re: Изометрия. Что первым рендериться, что вторым и тд
 
Я хочу развить тему......

А если у тебя юниты 3-х мерные - как быть?

Суть проблеммы : Все 3Д юниты будут рендерятся за один проход функции RenderWorld() тоесть отдельному юниту никак нельзя поставить свою очередь рендера.....знаю - есть EntityOrder() - но эта функция перекалашматит анимированный обьект до неузнаваемости......А если зеленый и желтый обьекты попадут в кадр одновременно.....причем один За забором а другой ПЕРЕД забором......как тогда быть?

jimon 21.06.2007 01:05

Re: Изометрия. Что первым рендериться, что вторым и тд
 
Diablo1909
если обьекты 3д, а забор 2д, то банально сделай забор 3д :)
смешаная техника особо не применяется :)

ps. или я чето не понял ?
устал просто

HolyDel 21.06.2007 01:10

Re: Изометрия. Что первым рендериться, что вторым и тд
 
на крайняк можно и в два прохода отрендерить.
сначала юниты за забором, потом забор,потом перед забором(конечно с вырубленной отчисткой екрана для камеры) (ессено если забор будет тока один - дальше хуже).
ЗЫ:
Цитата:

смешаная техника особо не применяется


Часовой пояс GMT +4, время: 21:51.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot