Форум: "Игры";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизИзометрия Найти похожие ветки
← →
MANGOL (2004-09-20 20:35) [0]Привет!
Делаю чего-то в DirectDraw. И вот задумал я всё это дело перевести в изометрическую проекцию, для красоты значит (раньше был вид сверху, перпендикулярно земной тверди). Но оказалось, что всё не так просто. Статейка с Delphi GFX мне не совсем понятна, там выходит, что юнит из точки 0.1 может идти сразу в 2.0, это безобразие я считаю. Товарищи господа, как же сделать изометрию? У меня есть кой-какие мысли, но так слишком тупо выйдет, мне кажеца. Мож, у кого-нть есть примерчик, или ссылка?
Буду чрезвычяйно рад любой помощи.
P.S. у меня ещё такая фигня есть, некоторые кнопочки в меню не работают (в смысле, они и не должны работать), и по нажатии вызывают процедуру noaction, к-рая показывает messagebox с надписью типа "эта кнопка щя не работаит!" Так вот, окно сообщения не всегда появляется, но по нажатии enter прога продолжает нормуль работать. Т.е. наверно окно как-то попадает "под" моё окно, хотя сам msgbox активен, и кнопка ok нажимабильна.
← →
Красный молоток (2004-09-20 20:44) [1]Делай изометрию не по сетке.
← →
MANGOL (2004-09-20 21:09) [2]гм, а это как?
← →
NikeOLD © (2004-09-20 21:47) [3]
> P.S. у меня ещё такая фигня есть, некоторые кнопочки в меню
> не работают (в смысле, они и не должны работать), и по нажатии
> вызывают процедуру noaction, к-рая показывает messagebox
> с надписью типа "эта кнопка щя не работаит!" Так вот, окно
> сообщения не всегда появляется, но по нажатии enter прога
> продолжает нормуль работать. Т.е. наверно окно как-то попадает
> "под" моё окно, хотя сам msgbox активен, и кнопка ok нажимабильна.
Ты поверх DirectDraw вызываешь стандартной GDI-окно. Для таких вещей в DDraw предусмотрен метод интерфейса FlipToGDISurface.
Просто первичная поверхность всегда находится поверх всех окон, рабочего стола и. т.п., соответсвенно твой MessageBox оказывается под ней и из-за этого невидим, но приложение начинает обрабатывать его.
← →
MANGOL (2004-09-20 22:16) [4]>> NikeOLD © (20.09.04 21:47) [3]
спасибо большое, я подозревал что это как-то так делается.
но, блин, так как же с изометрией?
я тут подумал, можно считывать из этаво.. из массива поверхности поля битвы "по диагонали" (например (0,3), (1,2), (2,1), (3,0) ....), а выводить "по горизонтали", соответственно и миникарту в углу придётся развернуть на 45 градусов. Но это кажись извращение какое-то, врядли так кто-то делает. К тому же углы карты нельзя будет отобразить, или там нечто будет вроде космоса.
а: б:
---------
|....1....
|...111... 1 1 1 1
|..11111.. 1 1 1
|.1111111. 1 1 1 1
|..11111.. 1 1 1
|...111... 1 1 1 1
|....1.... 1 1 1
|......... 1 1 1 1
на рис. (а) единичками показаны ячейки, считываемые из массива. На пододеяльник похоже чем-то... Вот. На рисунке (б) порядок вывода на экран.
← →
cyborg © (2004-09-21 08:36) [5]
> там выходит, что юнит из точки 0.1 может идти сразу в 2.0,
> это безобразие я считаю.
Никакого безобразия тут нет, 8 направлений, хочешь чтобы такого небыло, делай 4 стороны, только у тебя так все лесенкой ходить будут.
Мне кажется для изометрии шестигранные ячйки хорошо подходят, перемещение более реальное получится.
← →
MANGOL (2004-09-21 12:36) [6]cyborg © (21.09.04 08:36) [5]
не, лесенкой мне не надо :)
(хотя, вроде, в Фолауте именно так?)
есть же игры где в изометрии нормально перемещаются челобречки.. интересно, как там всё реализовано. Короче, буду по (4) делать.
всем спасибо :)
← →
cyborg © (2004-09-21 13:14) [7]Не понятно, лесенкой не надо, а будет по 4 делать.
В Фаллауте шестигранные ячейки.
← →
MANGOL (2004-09-23 13:55) [8]я имел ввиду [4]му посту. По-своему, тоесть. Вроде получается, не знаю правда, с какой скоростью это работать будет. Проверок и вычислений многовато (по сравнению с видом сверху, где их вобще почти нет - знай себе умножай координаты на размеры ячеек..)
← →
Mihey_temporary © (2004-09-23 15:31) [9]2 MANGOL:
Так и делают, например, в Age Of Empires - там карта - это ромб и никто не скрывает. Можно просто обрезать крылья в прямоугольник, но будет излишек ресурсов, хотя не такой уж и большой, чтобы сразу отвергать. Нумеруя клетки слева направо, снизу вверх так, как они идут на экране, ты придёшь к фигне.
← →
MANGOL (2004-09-23 18:17) [10]//Mihey_temporary © (23.09.04 15:31) [9]
да, я так и сделал. Вроде работает зашибись.
А излишек ресурсов незначительный совсем. Пара килобайт каких-то вшивых, кому они нужны? :)
модуль написал изометрический. кому охота посмотреть - могу намылить. там с демкой маленькой даже, что-то вроде примера :)
← →
П7 (2004-09-23 22:36) [11]Почитай документацию по формату карты для игры Fallout, там всё очень прозрачно написано. И обязательно сходи на:
1. GameDev.ru - раздел статьи - изометрия
2. GameDev.ru - Форум - Изометрия
3. GameDev.net - там тоже покопайся, хот я там нашёл мало действительно полезного... (:
Ну и... Рамблер тебе в помощь!!! (:
← →
OranZevjii (2004-10-20 05:35) [12]To Mongol: Скинь что получилось на мыло, если не сложно
← →
acidman (2004-10-20 06:09) [13]to mangol: кинь мне на 43735@bk.ru
← →
Zeal © (2004-10-21 21:31) [14]GameDev.ru - раздел статьи - изометрия
не нашел!... если не сложно киньту ссылку прям на статью.
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.041 c