Конференция "Игры" » Карта 2D-изометрия [Delphi, Windows]
 
  • Max_ (16.06.07 17:56) [0]
    Всем привет.

    Как лучше всего рисовать карту в 2D-изометрия (пол):
    - нарисовать всю карту на бипмапе, после преобр. в текстуру, а потом при    перемещении менять только координаты вывода текстуры.
    - или рисовать квадратиками, т.е. каждый ромбик - квадратик (4т.).

    Спасибо.
  • Rial © (16.06.07 18:29) [1]
    1й вариант. Быстрее в N раз, при большом количестве
    N равно количеству квадратиков.
  • Rial © (16.06.07 19:12) [2]
    Хм... я тут подумал... вопрос: а как часто эта "карта" будет изменяться?
    Просто тут палка о двух концах: если карта постоянно из меняется,
    то эффективно рисовать отдельные прямоугольники. Если их количество
    не очень велико, то это не так уж и страшно. Да и в любом случае
    эо быстрее, чем рисовать сначала битмап.
    Если карта генерится 1 раз за интервал от минуты и более - то лучше все
    это дело загонять в текстуру.
  • Домик (16.06.07 21:15) [3]
    Я бы рисовал квадратиками, т.к. всю карту отрисовывать нет смысла, достаточно рисовать лишь те квадратики, которые полностью или частично попадают в видимую область экрана.
  • Rial © (16.06.07 22:37) [4]
    > [3] Домик   (16.06.07 21:15)
    > Я бы рисовал квадратиками, т.к. всю карту отрисовывать нет
    > смысла, достаточно рисовать лишь те квадратики, которые
    > полностью или частично попадают в видимую область экрана.

    Ну если карта (интересующая часть) относительно статична,
    то какая разница, вся она на экране или нет, если рисовать
    один полигон? Ну а текстурка на 15-20МБ - ничего страшного,
    если она одна. :)
  • Домик (17.06.07 01:10) [5]
    > Ну если карта (интересующая часть) относительно статична,

    Что в твоем понимании статична? :) На карте всегда присутствуют анимированные объекты, деревья, трава или механизмы... Наверняка будут и такие объекты, с которыми можно взаимодействовать. Хотя если в текстуру рендерить только те квадратики, которые попадают в кадр, а потом эту текстуру тянуть на полигон, то особой разницы не вижу. Разве что я бы так не стал так делать, потому что на рендер текстуры так же нужно время. Но автор не указывает то, в чем он это собирается реализовывать подобную систему, потому подобные рассуждения уже бессмысленны.

    А если в текстуру рендерить целиком всю карту (и не попадающие в кадр квадраты тоже), то это будет, в любом случае тормозить.
  • Max_ (17.06.07 05:28) [6]
    а объекты (дерево, человек) явл. частью карты или выводятся отдельно, после?
  • Max_ (17.06.07 05:35) [7]
    --- На карте всегда присутствуют анимированные объекты

    имелось ввиду, что вся карта - текстура земли (трава, грязь, почва), она как бы неизменна, хотя и трава может шевелиться.
  • Max_ (17.06.07 05:56) [8]
    а ромбический спpайт в Direct8 есть, как исп.?
  • Max_ (17.06.07 06:25) [9]
    вопрос, хочу сделать в изометрии рельеф, как?
  • Домик (17.06.07 13:21) [10]
    > а объекты (дерево, человек) явл. частью карты или выводятся отдельно, после?

    Нет, обычно это отдельные объекты, хотя в разных играх карты могут преставлятся по разному. Если РПГ, значит там должны быть НПС, монстры или еще что-то, а они как правило расставляются непосредственно в редакторе карт.

    > а ромбический спpайт в Direct8 есть, как исп.?

    Я если честно не знаю т.к. с Direct8 не работал. Но думаю, что такого нет. В свое время изометрию реализовывал через обычные спрайты, натягивая на них текстуру с альфа каналом в форме ромба для земли, а для стен в форме вытянутого ромба.

    > вопрос, хочу сделать в изометрии рельеф, как?

    Точно так же как и не в изометрии, только спрайты немного в другой последовательности выводить.
 
Конференция "Игры" » Карта 2D-изометрия [Delphi, Windows]
Есть новые Нет новых   [134430   +4][b:0][p:0]