Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Нахождение нужной ячейки по координатам мыши (2 стр)

Нахождение нужной ячейки по координатам мыши (2 стр)

Страницы: 1 2 3 Следующая »
ArochПостоялецwww18 янв. 20030:05#15
Lazy
Находишь предполагаемый индекс и сверяешься может ли на этом этаже находится что-то или нет (из массива карты) если нет опускаешьсчя на этаж ниже и проверяешь таким же макаром.
LazyНовичокwww23 янв. 200311:42#16
Зенькую, все запохало!!! =) Я в общем то так и предоплогал, только, че-то не похало. но вдруг озоренье снизошло!!! =)
LazyНовичокwww12 фев. 20037:30#17
Народ такой вопрос, как быть с обьектами, занимающими больше одной клетки, например какое-то здание или другой обьект.
Я рассмотрел вариант введения в каждую клетку дополнительной переменной, и представить в таком виде

1 2 2 2 3  т.е. в 0 точке сам обьект, а в остальных точках направление смещения к обьекту
6 1 2 3 8  и когда наводим мышь, проходя путь, отслеживаем обьект.
6 6 0 8 8  Предложите другие способы реализации, менее обьемные алгоритмы.
6 4 7 5 8
4 7 7 7 5

DM!Постоялецwww11 апр. 200318:24#18
Народ не объясните мне как определять координаты тайла под курсором, если ландшафт нарисован  средствами D3D, как например в Heroes4. Это самая главная проблема которая останавливает меня от использования D3D. Щас зачатки моего движка работают исключительно под DDraw, но реализовать там нормальные тени и цветное освещение с должным быстродействием не получается. Я слышал в D3D с этим гораздо проще...
ArochПостоялецwww12 апр. 20030:36#19
DM!
Ни вижу разницы: как ты делал в ddraw так и в d3d. Единственно что сделай так это настрой "правильно" матрицу. А дальше отслеживай изменения координат мыши и все.
DM!Постоялецwww14 апр. 200311:08#20
Это понятно, но так как я нацелен на height mapping, то будут всевозможные "искажения" тайлов. Как быть с ними?
В DDraw же все плоско и тайл определяется по нехитрой формуле.
"Правильно" настроить матрицу это как?
ArochПостоялецwww14 апр. 200314:58#21
DM!
под матрицей я имел ввиду камеру. над height mapping подумаю, щас времени нет "соченять" хотя как это можно сделать идея уже есть. Тока сначала скажи как у тебя камера расположенная. сверху вниз или под углом? а то это уже не изометрия получается (под камерой я имею ввиду камеру direct3d а не то как будет выглядеть визуально)
DM!Постоялецwww14 апр. 200315:46#22
Да не брался я еще D3D, все только планы. Камеру собираюсь расположить под углом. Вся остальная графика предполагается спрайтовая, в общем чего говорить, возьми отсюда: http://www.infacom.ru/downloads/NewEditor.zip (500kb) кусок редактора карт, и все увидишь. Там все в DDraw, хочу ландшафт сделать в D3D с height mapping, а все остальное оставить как есть.
VoodooНовичокwww29 апр. 200317:31#23
Народ!

Не знаю почему на всех сайтах которые посвящены изометрии (естественно какие уж нашел)
После определения прямоугольного блока в котором находится мышь все предлагают
использовать маски изображения для коррекции координат мыши в изо. По сути разбив
тайл на 4 прямоугольника вы получаете в итоге прямую зависимость координат Х от У


11111111211111111
11112222222221111
22222222222222222
11112222222221111
11111111211111111

или после разбиения


111111112 21111111
111122222 22221111
222222222 22222222

222222222 22222222
111122222 22221111
111111112 21111111

Почему не понимаю никто не использует формулы.

Пример для левой верхней части

IF (HalfSpriteHeight-OffsetInBlockByY)<(OffsetInBlockByX Div Ration)  then
Begin
{Верхний левый угол}
End
else
Begin
{Правый нижний}
End;

По переменно
HalfSpriteHeight - Высота тайла div 2 {переменная вводится для переворота оси ординат}
OffsetinBlockByY - Смещение  по  Y в высчитаном блоке  положении заданной точки (Мыши)
OffsetinBlockByX - Смещение  по  X в высчитаном блоке  положении заданной точки (Мыши)
Ration - Отношение ширины тайла к его высоте

И так далее для всех остальных частей.

Почему???????????!!!!!!!!!!! :(

D1pa5Постоялецwww30 апр. 20030:23#24
Потому что при использовании маски, меньше вычислять, следовательно меньше мароки и по-моему намного нагляднее.
ArochПостоялецwww30 апр. 20030:59#25
Voodoo
Если бы ты читал все варианты в этой теме то не нашел бы как раз ни одного способа вычисления по маске, во всех предложенных тут вариантах используется математика/геометрия
VoodooНовичокwww30 апр. 200314:58#26
Aroch!

Dope уже высказал свое мнение по поводу скорости расчета описаного мною части алгоритма
мыши. А что ты думаеш по поводу скоростных характеристик алгоритма с маской и на чистой
математике/геометрии. Я стараюсь выбрать наиболее быстродействующий алгоритм

VoodooНовичокwww30 апр. 200314:58#27
Начал сам тестить но на моей машине разница не существенна. Пожалуйста если кто-то
задавался такой целью сообщите о результатах
ArochПостоялецwww30 апр. 200317:16#28
Voodoo
Лично я отдаю предпочтение математике (не люблю маски). Так как математика более гибкая штука :)
D1pa5Постоялецwww1 мая 20034:05#29
Voodoo
На счет скорости можно быть спокойным, разница в производительности и не составит ~0,5 fps а то и меньше
Я хочу сказать что заострять внимание нужно в других местах, таких как ИИ, удобство и скорость работы скриптов, работа с памятью и т.д.

Aroch
математика гибкая штука - это клёво сказано :)

Страницы: 1 2 3 Следующая »

/ Форум / Программирование игр / 2D графика и изометрия

Тема в архиве.

2001—2018 © GameDev.ru — Разработка игр