![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
2Д исходник
KiberKot © (2006-04-04 14:25:00)Срочно нужен исходник 2Д стрелялки, для практического изучения кода полноценной игры (не навороченной), в котором присутствует:
1) Главный герой, с разнообразным оружием
2) Враги, с мозгами и оружием
3) Карта с различными преградами
Подскажите пожалуйсто где найти или поделитесь кодом (если не жалко)
З.Ы. заранее спасибо
Mortem (2006-04-05 14:16:00) [21]
> KIberKot © (05.04.06 11:41) [31]
"Ты неправильно извратил мои слова!" (с)один знакомый
Cash (2006-04-05 13:56:00) [22]Да, вон еще колекция ссылок:
http://www.gamedev.ru/links/?sect=4
Только я одно забыл, я еще C++ хорошо знаю,
поэтому мне легче перетащить код из Delphi в VC++ или BCppB.
Но вроде тебе C++ тоже уже должны были объяснить.
Cash (2006-04-05 13:52:00) [23]KIberKot © (05.04.06 11:41) [31]:
Не, о чем ты! Они все жадные! :)))
На шкодера - это хорошо, 2 года это еще лучше.
Значит дискретная математика уже была.
ЗЫ: на дискретке тебе все что нужно уже рассказали! ;)
AI может перемещаться по графу, при чем граф можно как самому строить,
так и разработать алгоритм динамической прокладки графа.
Для целеуказания граф следует нагрузить.
Только это должен быть статический граф. Если целей много, то надо
несколько методов нагрузки. Т. е. для ботов и плееров создать показатели
из близости к вершинам графа. Чем дальше от вершины плеер, тем меньшую
нагрузку на вершину он производит. Там, к примеру, для валяющегося
оружия тоже надо бы создать свой показатель.
Теперь о формировании вершин графа.
Я честно говоря еще не определился что лучше для этого, но использовал
пока только упакованные записи (packed record) и класс-объекты (object),
но думаю еще на классах граф замутить, это должно выйти куда лучше,
но такой метод память-жоркий.
У вершины должны быть связи с другими вершинами, для этого можно
использовать массив, список или класс TList (третий будет лучше для
классов), который должен содержать указатели на связанные вершины.
Вершины должны быть связаны в двух направлениях (если конечно не
орграф создаешь), т. е. если имеем связь A->B, значит имеем связь B->A.
Нагруженность вершины - это всего лишь число, это может быть расстояние
до осуществляющего нагрузку объекта (плеера или винтовки) или
количество (концентрацию) этих объектов в области вершины.
Фу-у-у-у-у...
Вроде что то накалякал.
На http://www.gamedev.ru/articles/?id=70121есть алгоритм поиска пути.
А в качалке на http://www.gamedev.ru/я вроде находил подобную штуковину.
KIberKot (2006-04-05 11:41:00) [24]
> РАБМЛЕР - твой друг!
> В таких вопросах не ориентируйся на графические API, они
> тут не к чему. Тут голая математика, физика, геометрия..
> .
Ты хочеш сказать, что здесь, среди тех кто пишет 3Д игры с AI и всеми наворотами, не найдется того, кто может подсказать?
Mortem (2006-04-05 11:29:00) [25]РАБМЛЕР - твой друг!
В таких вопросах не ориентируйся на графические API, они тут не к чему. Тут голая математика, физика, геометрия...
KIberKot (2006-04-05 10:59:00) [26]ЗЫ если не ответиш, то дай хотябы ссылку, где можно почитать. Я по этому вопросу уже создавал раздел, но так никто и не ответил
KiberKot (2006-04-05 10:47:00) [27]
> KIberKot, чего я там разобрал? Я и ещё один товарищ 2 года
> своей жизни потратили на создание сверх-клона игры автор
> которой не дал НИ СТРОКИ КОДА из оригинала! Так что за такие
> фразы я готов порвать кого угодно...
Просто мне кое кто сказал, что в эту же игру играл лет пять назад, так что извени, если обидел
> Давно программируешь? Давно на Делфи?
Учусь на программиста, 2 года программирую, но практики вобще мало, т.к. а всем по чуть чуть
Да и в игре этой нужен не AI, задание какихто повторяющихся действий
Cash (2006-04-05 09:57:00) [28]Mortem © (04.04.06 22:34) [23]:
Не, мой труд можно сочесть за преподовательский, а статьи в основном
пишут эти, как их, писатели. Я бы сказал у препода и писаки мало чего
общего.
KIberKot © (04.04.06 23:49) [24]:
На кого учишься?
Давно программируешь? Давно на Делфи?
Много ли знаешь о структурах данных?
Это необходимо для более точного ответа по AI.
Вопрос искуственного интеллекта уж очень велик, особенно в шутерах.
antonn (2006-04-05 08:27:00) [29]XProger © (05.04.06 5:26) [25]
Так что за такие фразы я готов порвать кого угодно...
шахтерской лопаткой? :)
XProger (2006-04-05 05:26:00) [30]KIberKot, чего я там разобрал? Я и ещё один товарищ 2 года своей жизни потратили на создание сверх-клона игры автор которой не дал НИ СТРОКИ КОДА из оригинала! Так что за такие фразы я готов порвать кого угодно...
KIberKot (2006-04-04 23:49:00) [31]
> Cash
Спасибо за ответ, воющем так все понятно, написано доходчиво.
Ну а если есть желание, можеш помочь вот с таким вопросом.
Как легче задать искуственый интелект. Вот я думаю нужно задать определенные кординаты, между которыми может перемещаться враг, ну а в крайнем случае, если герой далеко уходит от места появления врага, то враг просто прет на пролом в сторону героя, просматривая путь в перед на несколько пикселов в поиски преград и впадин
> Да при чём тут OGL, ты его исходник видел - он так замудрёно
> написан, что по нему учиться невозможно впринципе.
Ну насколько я пнял он не писал, а только разобрал исходник
> Из перечисленного тобой не обнаружил ни чего, связанного
> с API (DX, OGL). Посему можно смело заявить, что нету понимания
> у вас. Понимания как API, так и разработки игр.
Ты о чем говориш? Если о
> 1 координаты верхнего левого угла
> 2 размер
> 3 и какойто флаг, обозначающий, что через эту фигуру нельзя
> пройти
то это не все, а только основные параметры, не считая массив объектов, их текстуры и тд.
Mortem (2006-04-04 22:34:00) [32]
> XProger © (04.04.06 19:13) [14]
А чё сразу геолог-то? Раздолбай я, а не геолог. ^__^
> KiberKot © (04.04.06 19:47) [15, 16]
Да при чём тут OGL, ты его исходник видел - он так замудрёно написан, что по нему учиться невозможно впринципе. ^___^
> KIberKot © (04.04.06 21:39) [21]
Из перечисленного тобой не обнаружил ни чего, связанного с API (DX, OGL). Посему можно смело заявить, что нету понимания у вас. Понимания как API, так и разработки игр.
Срочно в РАМБЛЕР за статьями!
> Cash © (04.04.06 22:15) [22]
Ниасилил, но коли есть маза писать столько текста - напиши лучше статейку. (:
Cash (2006-04-04 22:15:00) [33]KIberKot © (04.04.06 21:39) [21]:
Во! это оно!
Поверь пожалуйста на слово, тебе не нужен исходник! Тебе
необходимо направление взора, ведь как посмотришь так и сделаешь, или
не сделаешь! Дак вот:
Существует необходимость создания объектов столкновения
и взаимодействия.
Правильно думаешь, это должны быть классы. Да, только координаты не
левого верхнего угла, у меня же привычка сложилась - координаты центра
объекта. К таким координатам удобнее физику прикручивать! ;)
Создай Базовый "про-класс" - класс прародитель всех остальных вплоть до
плееров и ботов.
От этого класса веди иерархию сперва на стационарный (неподвижный)
класс препятствия, потом сделай наследование на физически подвижный
класс препятствий.
Флаг (я бы дал два - для юзверей и для пуль) - пусть работает как вулева
метка, которая говорит, что с этим объектом сталкиваются пули или люди
или и те и другие.
Именно от этого флага должно зависеть будет выполняться проверка
на столкновения или нет. Т. е. в про-классе надо бы предусмотреть
процедуру проверки столкновений, которая должна наследоваться всем,
даже пулям и другим штукам. Флаг столкновений тоже надо бы увязать с
про-классом, ведь вдруг захочется из юзера сделать этакого духа или
в сумрак его отправить. :)
Сама обработка столкновений должна происходить в каждом классе
уникально,
т. е. для пули одна проверка столкновений, а для банки пепси - другая. :)
Столкновения можно проверять по разному, но большинство (я думаю это
так) предпочитает использовать окаймляющие примитивы, прямоугольники,
окружности, и т. д. То есть, есть у твоего объекта размеры по двум осям,
и они равны, тогда лучше использовать окружность иначе - прямоугольник.
Кпримеру надо посчитать столкновение плеера с ящиком пива, смотрим,
плеер равносторонний, а ящик - нет, делаем вывод:
столкновение окружности и прямоугольника!
Если хоть одна из крайних точек ящика находится на расстоянии до плеера
меньшем чем радиус его окружности, то в результате у нас есть прямой
контакт ящика пива и плеера... и дальнейшие последствия этого. :)
вроде так все, если еще чего не понятно - обращайтесь.
KIberKot (2006-04-04 21:39:00) [34]мне нужен не совет, а исходник
знаю как работать с поверхностями(блитинг, флипинг, буферизация и тд.), спрайтами.
конкретно сейчас интересует вопрос, как создать преграды на пути героя, то есть всякие ящики, планки, балконы, по которым можно ходить и через которые не пролетают пули.
Я так понимаю нужен класс, в котором описывается
1 координаты верхнего левого угла
2 размер
3 и какойто флаг, обозначающий, что через эту фигуру нельзя пройти
вот этот флаг меня и интересует, как это будет выглядеть?
Cash (2006-04-04 20:56:00) [35]KiberKot © (04.04.06 20:42) [19]:
Изложи, что в DirectX ты знаешь, а чего нет. Т. е. к примеру:
- знаю, как девайс создавать и вертекс буффер, а еще умею
текстурки выводить!
А еще желательно услышать (у-читать :), какой аспект 2D шутера
тебе неизвестен или не понятен. Создание карты, плеера, спрайтов, и т. д.
А то малость не ясно, какой совет дать!
KiberKot (2006-04-04 20:42:00) [36]
> "DirectX графика в проектах Delphi"
По ней я и учусь, но в ней примеры глючные вхлам и нету всего что мне нужно
Про игру там только вывод спрайтов, и различные приколы в работе с графикой
Pa5ha (2006-04-04 20:26:00) [37]Кот, учится надо не на примерах игр. Сначала надо научится просто картинки выводить, потом их анимировать и т.д. В общем, есть хорошая книга "DirectX графика в проектах Delphi" или как-то так. М.Краснова. В примерах к этой книге есть какая-то стрелялка. Для Тебя наверно самое то. Я так понимаю, DirectDraw. Поищи на d3dengine.narod.ru , я вроде выкладывал. А вообще, этот позорный сайт надо переделать :) Как-нить займусь на досуге. Правда, директикс не рулит. От него я отказался.
KiberKot (2006-04-04 19:50:00) [38]ЗЫ.18 нужно что то, по типу Дендивских стрелялок
KiberKot (2006-04-04 19:47:00) [39]А я другой комп нашел :)
Вобщем не катит твоя прога, она конечно реальная, но согласись трудно учиться созданию игор начинающему DirectX-еру на крутой игре написанной на OGL
ЗЫ мне бы че попроще
KiberKot (2006-04-04 19:47:00) [40]А я другой комп нашел :)
Вобщем не катит твоя прога, она конечно реальная, но согласись трудно учиться созданию игор начинающему DirectX-еру на крутой игре написанной на OGL
ЗЫ мне бы че попроще