Рад приветствовать, keel!
Довелось мне Tuesday, February 17, 2004 читать, следующее:
k> Пишу игру, и вот столкнулся с такой проблемой:
k> как в Дельфи6 сделать чтобы игрок передвигался с помощью мышки, то
k> есть куда кликнул, туда и пошел игрок???? Наподобие как в Диабло.
k> Программирую с использованием powerdraw.
Собственно, ни среда, ни графическая либа тут ничего не решают.
Подходов КУЧА! Всё зависит от требуемой скорости, необходимого качества
найденного решения, типа и размера карты игры + что-то ещё.
Для начала следует разделить задачу на несколько более простых:
1. Нахождение пути между двумя точками игрового пространства.
2. Быстрая работа с мышью (я это к тому, что если ты не собираешься
привязывать скорость отклика мыши к непрогнозируемому за пределами
твоей машины FPS, то придётся немного повозиться (микро-GDI ;) )) и
определение её позиция в части игрового пространства выводимого на
экран.
Ессно, главная задача - No1 .
Писать тут можно много, да вот почитай (люди уже напрягались подробно
писать):
http://www.gamedev.ru/articles/read.shtml?id=70121
http://dev.dtf.ru/articles/read.php?id=51
http://www.gamemaker.ru:8101/library/ai/1/
также поищи "Алгоритм волны" (wave algorithm, Djikstra)
2-ая задача может показаться элементарной, но если ты хочешь, чтобы
твою игру имели возможность увидеть как можно больше людей (у них
даже может и не быть аппаратного блиттинга), то над этим стоит
поработать. Тема неплохо освещалась в книге С.Трухильо
"Программирование графики в DirectDraw". Суть в том, что обновляется
без моргания (в бэк-буфере) лишь кусочек экрана (по хорошему ещё и в
параллельном потоке ;) ), если ты работал с мышой под ДОСом, то там
в общих чертах так и было написано.
Когда решишь в отдельности эти задачи, просто по щелчку мыши
определяешь её координаты и подаешь их на вход процедуре поиска пути.
ЗЫ Лично мне в игруле хватило немного оптимизированного волнового
алгоритма (судя по некоторым артефактам, нечто подобное
использовалось и в Fallout).
Alles Gutes!
CU @ http://smuta.boom.ru
...In Code We Trust...
При желании, mailto:deniskravtso***@m*****.ru
Номер выпуска : 2093
Возраст листа : 152 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85778
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru
http://subscribe.ru/ mailto:ask@subscribe.ru