Цитата:
Сообщение от ^i_Swep
Начну: картинка (её номер), проходимость (проедет ли танк) ... и лень дальше думать, вообще мне ещё сегодня учиться надо
|
О, как подробно!
Ладно, давайте я на правах консультанта проекта внесу свои пять копеек.
Вопросы:
1) Сколько единичных блоков будут равны по размеру танку? Ответ "ясное дело, 1" заведомо неправилен. Если помните, в оригинале с кирпичной стены сносилось, кажется, по 1/4 за выстрел => там единичный блок (который либо есть, либо его нет) был равен 1/16 танка, а ответ на вопрос - в танке было 4x4 единичных блоков.
2) Имеет ли смысл объединять единичные блоки в более крупные образования для экономии памяти и небольшого ускорения рассчётов, связанных с движением? В оригинале они, ясное дело, объединялись. Но мы себе можем позволить этого не делать, получив взамен возможность сделать, например, пол-большого-блока леса, четверть кирпича и четверть стали. (большой блок - блок, равный размером танку).
Если ответ "можем", то вопрос №1 отпадает - кол-во блоков на танк элементарно делается настраиваемым.
3) Структура информации о блоке. Картинка - чушь, ибо она не имеет отношения к ядру игры, а я настоятельно рекомендую не привязывать ядро к визуализации.
Проходимость - да, но она не должна быть "да/нет", а разумно сделать поставить ей коэффициент модификации скорости. Если он 0 => поверхность непроходима.
Далее должен быть тип блока в виде некой внутренней константы. Из него-то как раз и будет визуализатор получать картинку и прочее.
Прочность/броня - также разумно сделать такие поля. Если мощности снаряда не хватает для пробития брони - урон не наносится вообще (так делается сталь). Ну а с прочностью вроде понятно и так. Как раз будет задел на будущее расширение.
Вот, уважаемые. Отвечайте на эти вопросы. А я тут пока копаюсь в Direct3D в плане двухмерной графики, так что, возможно, вам будет скоро набор классов для упрощения визуализации выдан.
Скрытый текст:
P.S. Особо умным товарищам, старательно выискивающим поводы для возвышения себя. Если Вы думаете, что я специально для этого на gamedev'е выяснял и говорил про максимально быстрый вывод графики, то ошибаетесь. Сюда я выдам нечто простенькое и ориентированное на новичков. Я вообще хотел обойтись DirectDraw с его тормознутой недо-альфой, но раз уж всё равно Direct3D придётся юзать, то зачем распылять свои силы?
Я там даже (о, ужас!
) буду D3DX-функции юзать. А вот на C# не надейтесь.