Текущий архив: 2007.10.07;
Скачать: CL | DM;
Вниз
2Д исходник Найти похожие ветки
← →
KiberKot © (2006-04-04 14:25) [0]Срочно нужен исходник 2Д стрелялки, для практического изучения кода полноценной игры (не навороченной), в котором присутствует:
1) Главный герой, с разнообразным оружием
2) Враги, с мозгами и оружием
3) Карта с различными преградами
Подскажите пожалуйсто где найти или поделитесь кодом (если не жалко)
З.Ы. заранее спасибо
← →
KiberKot © (2006-04-04 14:26) [1]ЗЫ2 написанной на DirectX
← →
Mortem © (2006-04-04 15:04) [2]http://code.darthman.com
В разделе "Скачать\Конкурсы" качаем "Конкурс № 5 - Битва".
← →
Mortem © (2006-04-04 15:04) [3]P/S/ Не помню только, есть ли там работы на DX... ^___^
← →
KiberKot © (2006-04-04 15:06) [4]да я только от туда, но этого конкурса еще не качал, щас посмотрю
← →
KiberKot © (2006-04-04 15:10) [5]круто, вот только интересно, почему они все одинаковые
и мне бы еще вид с боку (было бы очень хорошо)
← →
KiberKot © (2006-04-04 16:02) [6]heeelp !!!
← →
XProger © (2006-04-04 16:54) [7]Игра - http://timeforkill.mirgames.ru/img/scr/5.jpg
Исходник - http://timeforkill.mirgames.ru/files/sdk/TFK_047_source.rar
← →
Mortem © (2006-04-04 17:10) [8]
> XProger © (04.04.06 16:54) [7]
Первый пост прочитай... ^___^
> KiberKot © (04.04.06 15:10) [5]
Они все одинаковые потому, что по сценарию предлагалось скачать набор арта для игры, чтоб не заморачиваться со своим. Вот все и не стали заморачиваться...
← →
XProger © (2006-04-04 17:10) [9]Mortem
1) есть
2) есть
3) есть
← →
Cash © (2006-04-04 17:14) [10]XProger © (04.04.06 17:10) [9]:
:)))
не [0], а [1]!
Там написано:
> KiberKot © (04.04.06 14:26) [1]
> ЗЫ2 написанной на DirectX
← →
XProger © (2006-04-04 17:48) [11]ЗЫ2 только это на OpenGL ;)
ЗЫ3 остальное в примерах на mirgames.ru
← →
KiberKot © (2006-04-04 17:56) [12]Блин, деньги на Интернет заканчиваются, прийдется завтра качать наверно
← →
Mortem © (2006-04-04 18:02) [13]
> XProger © (04.04.06 17:10) [9]
Какой ты программист после этого? ^___^
← →
XProger © (2006-04-04 19:13) [14]Mortem, я шахтёр, и этого не стисняюсь в отличии от некоторых геологов ;)
← →
KiberKot © (2006-04-04 19:47) [15]А я другой комп нашел :)
Вобщем не катит твоя прога, она конечно реальная, но согласись трудно учиться созданию игор начинающему DirectX-еру на крутой игре написанной на OGL
ЗЫ мне бы че попроще
← →
KiberKot © (2006-04-04 19:47) [16]А я другой комп нашел :)
Вобщем не катит твоя прога, она конечно реальная, но согласись трудно учиться созданию игор начинающему DirectX-еру на крутой игре написанной на OGL
ЗЫ мне бы че попроще
← →
KiberKot © (2006-04-04 19:50) [17]ЗЫ.18 нужно что то, по типу Дендивских стрелялок
← →
Pa5ha (2006-04-04 20:26) [18]Кот, учится надо не на примерах игр. Сначала надо научится просто картинки выводить, потом их анимировать и т.д. В общем, есть хорошая книга "DirectX графика в проектах Delphi" или как-то так. М.Краснова. В примерах к этой книге есть какая-то стрелялка. Для Тебя наверно самое то. Я так понимаю, DirectDraw. Поищи на d3dengine.narod.ru , я вроде выкладывал. А вообще, этот позорный сайт надо переделать :) Как-нить займусь на досуге. Правда, директикс не рулит. От него я отказался.
← →
KiberKot © (2006-04-04 20:42) [19]
> "DirectX графика в проектах Delphi"
По ней я и учусь, но в ней примеры глючные вхлам и нету всего что мне нужно
Про игру там только вывод спрайтов, и различные приколы в работе с графикой
← →
Cash © (2006-04-04 20:56) [20]KiberKot © (04.04.06 20:42) [19]:
Изложи, что в DirectX ты знаешь, а чего нет. Т. е. к примеру:
- знаю, как девайс создавать и вертекс буффер, а еще умею
текстурки выводить!
А еще желательно услышать (у-читать :), какой аспект 2D шутера
тебе неизвестен или не понятен. Создание карты, плеера, спрайтов, и т. д.
А то малость не ясно, какой совет дать!
← →
KIberKot © (2006-04-04 21:39) [21]мне нужен не совет, а исходник
знаю как работать с поверхностями(блитинг, флипинг, буферизация и тд.), спрайтами.
конкретно сейчас интересует вопрос, как создать преграды на пути героя, то есть всякие ящики, планки, балконы, по которым можно ходить и через которые не пролетают пули.
Я так понимаю нужен класс, в котором описывается
1 координаты верхнего левого угла
2 размер
3 и какойто флаг, обозначающий, что через эту фигуру нельзя пройти
вот этот флаг меня и интересует, как это будет выглядеть?
← →
Cash © (2006-04-04 22:15) [22]KIberKot © (04.04.06 21:39) [21]:
Во! это оно!
Поверь пожалуйста на слово, тебе не нужен исходник! Тебе
необходимо направление взора, ведь как посмотришь так и сделаешь, или
не сделаешь! Дак вот:
Существует необходимость создания объектов столкновения
и взаимодействия.
Правильно думаешь, это должны быть классы. Да, только координаты не
левого верхнего угла, у меня же привычка сложилась - координаты центра
объекта. К таким координатам удобнее физику прикручивать! ;)
Создай Базовый "про-класс" - класс прародитель всех остальных вплоть до
плееров и ботов.
От этого класса веди иерархию сперва на стационарный (неподвижный)
класс препятствия, потом сделай наследование на физически подвижный
класс препятствий.
Флаг (я бы дал два - для юзверей и для пуль) - пусть работает как вулева
метка, которая говорит, что с этим объектом сталкиваются пули или люди
или и те и другие.
Именно от этого флага должно зависеть будет выполняться проверка
на столкновения или нет. Т. е. в про-классе надо бы предусмотреть
процедуру проверки столкновений, которая должна наследоваться всем,
даже пулям и другим штукам. Флаг столкновений тоже надо бы увязать с
про-классом, ведь вдруг захочется из юзера сделать этакого духа или
в сумрак его отправить. :)
Сама обработка столкновений должна происходить в каждом классе
уникально,
т. е. для пули одна проверка столкновений, а для банки пепси - другая. :)
Столкновения можно проверять по разному, но большинство (я думаю это
так) предпочитает использовать окаймляющие примитивы, прямоугольники,
окружности, и т. д. То есть, есть у твоего объекта размеры по двум осям,
и они равны, тогда лучше использовать окружность иначе - прямоугольник.
К примеру надо посчитать столкновение плеера с ящиком пива, смотрим,
плеер равносторонний, а ящик - нет, делаем вывод:
столкновение окружности и прямоугольника!
Если хоть одна из крайних точек ящика находится на расстоянии до плеера
меньшем чем радиус его окружности, то в результате у нас есть прямой
контакт ящика пива и плеера... и дальнейшие последствия этого. :)
вроде так все, если еще чего не понятно - обращайтесь.
← →
Mortem © (2006-04-04 22:34) [23]
> 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]
Ниасилил, но коли есть маза писать столько текста - напиши лучше статейку. (:
← →
KIberKot © (2006-04-04 23:49) [24]
> Cash
Спасибо за ответ, воющем так все понятно, написано доходчиво.
Ну а если есть желание, можеш помочь вот с таким вопросом.
Как легче задать искуственый интелект. Вот я думаю нужно задать определенные кординаты, между которыми может перемещаться враг, ну а в крайнем случае, если герой далеко уходит от места появления врага, то враг просто прет на пролом в сторону героя, просматривая путь в перед на несколько пикселов в поиски преград и впадин
> Да при чём тут OGL, ты его исходник видел - он так замудрёно
> написан, что по нему учиться невозможно впринципе.
Ну насколько я пнял он не писал, а только разобрал исходник
> Из перечисленного тобой не обнаружил ни чего, связанного
> с API (DX, OGL). Посему можно смело заявить, что нету понимания
> у вас. Понимания как API, так и разработки игр.
Ты о чем говориш? Если о
> 1 координаты верхнего левого угла
> 2 размер
> 3 и какойто флаг, обозначающий, что через эту фигуру нельзя
> пройти
то это не все, а только основные параметры, не считая массив объектов, их текстуры и тд.
← →
XProger © (2006-04-05 05:26) [25]KIberKot, чего я там разобрал? Я и ещё один товарищ 2 года своей жизни потратили на создание сверх-клона игры автор которой не дал НИ СТРОКИ КОДА из оригинала! Так что за такие фразы я готов порвать кого угодно...
← →
antonn © (2006-04-05 08:27) [26]XProger © (05.04.06 5:26) [25]
Так что за такие фразы я готов порвать кого угодно...
шахтерской лопаткой? :)
← →
Cash © (2006-04-05 09:57) [27]Mortem © (04.04.06 22:34) [23]:
Не, мой труд можно сочесть за преподовательский, а статьи в основном
пишут эти, как их, писатели. Я бы сказал у препода и писаки мало чего
общего.
KIberKot © (04.04.06 23:49) [24]:
На кого учишься?
Давно программируешь? Давно на Делфи?
Много ли знаешь о структурах данных?
Это необходимо для более точного ответа по AI.
Вопрос искуственного интеллекта уж очень велик, особенно в шутерах.
← →
KiberKot © (2006-04-05 10:47) [28]
> KIberKot, чего я там разобрал? Я и ещё один товарищ 2 года
> своей жизни потратили на создание сверх-клона игры автор
> которой не дал НИ СТРОКИ КОДА из оригинала! Так что за такие
> фразы я готов порвать кого угодно...
Просто мне кое кто сказал, что в эту же игру играл лет пять назад, так что извени, если обидел
> Давно программируешь? Давно на Делфи?
Учусь на программиста, 2 года программирую, но практики вобще мало, т.к. а всем по чуть чуть
Да и в игре этой нужен не AI, задание какихто повторяющихся действий
← →
KIberKot © (2006-04-05 10:59) [29]ЗЫ если не ответиш, то дай хотябы ссылку, где можно почитать. Я по этому вопросу уже создавал раздел, но так никто и не ответил
← →
Mortem © (2006-04-05 11:29) [30]РАБМЛЕР - твой друг!
В таких вопросах не ориентируйся на графические API, они тут не к чему. Тут голая математика, физика, геометрия...
← →
KIberKot © (2006-04-05 11:41) [31]
> РАБМЛЕР - твой друг!
> В таких вопросах не ориентируйся на графические API, они
> тут не к чему. Тут голая математика, физика, геометрия..
> .
Ты хочеш сказать, что здесь, среди тех кто пишет 3Д игры с AI и всеми наворотами, не найдется того, кто может подсказать?
← →
Cash © (2006-04-05 13:52) [32]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/ я вроде находил подобную штуковину.
← →
Cash © (2006-04-05 13:56) [33]Да, вон еще колекция ссылок:
http://www.gamedev.ru/links/?sect=4
Только я одно забыл, я еще C++ хорошо знаю,
поэтому мне легче перетащить код из Delphi в VC++ или BCppB.
Но вроде тебе C++ тоже уже должны были объяснить.
← →
Mortem © (2006-04-05 14:16) [34]
> KIberKot © (05.04.06 11:41) [31]
"Ты неправильно извратил мои слова!" (с)один знакомый
← →
antonn © (2006-04-05 14:30) [35]кстати, я про канвас уже говорил?
:)
← →
Cash © (2006-04-05 15:53) [36]antonn © (05.04.06 14:30) [35]:
Нет! Но я не дам тебе такой возможности! :)))
ЗЫ: Canvas рулит!
:D
← →
KiberKot © (2006-04-05 18:36) [37]
> Cash
Чесно гворя, все что я понял из написанного это то, что нужен массив с координатами путей и приобретаемых бонусов с оружием. Пользуясь этими координатами боты прокладывают свой путь, а герой в этих координатах подбирает предметы. Но вот как это выглядет на практике я не совсем представляю.
А вот про дискретную математику я не слышал :)
Учусь я не в университете, а в техникуме :(
Из математики у нас алгебра логики, теория вероятности, численные методы, компьютерная графика (трохи), матрицы.
> "Ты неправильно извратил мои слова!" (с)один знакомый
Я не про тебя говорил, а про одного чилдрена который седит неподолеку.
Вывод:
будем думать
← →
Cash © (2006-04-05 19:06) [38]KiberKot © (05.04.06 18:36) [37]:
> Учусь я не в университете, а в техникуме :(
А я обратное подумал! Да, в программе техникума есть такой агрех.
Но и его чесно говоря можно исправить, было бы рвение к знаниям! :)
Заваливай на http://algolist.manual.ru, там есть кое что из этого предмета.
(Графы, орграфы, граматики и т. д.)
А еще - про структуры данных, они тоже, точнее в практической реализации
очень даже помогут.
"Ты-ндыкс" :) дал очень даже соблазнительную ссылку:
http://referatw.ru/cgi-bin/main.cgi?level=6&p1=123&p2=88&p3=40073
(из запроса http://www.yandex.ru/yandsearch?stype=&nl=0&text=%CB%E5%EA%F6%E8%E8+%C4%E8%F1%EA%F0%E5%F2%ED%E0%FF+%CC%E0%F2%E5%EC%E0%F2%E8%EA%E0)
> что нужен массив с координатами путей и приобретаемых бонусов
Не не не, нужна именно динамическая структура. Считай список из
указателей.
Смотри:
Type
PGraphNode = ^TGraphNode;
TGraphNodes = array of PGraphNode;
TGraphNode = Packed record
X: integer;
Y: integer;
Weights: array of single; // Набор весов, которые на вершину действуют.
Branches: TGraphNodes; // Набор ребер для перехода по вершинам.
end;
Это запись, вершина графа. Ребро графа местится в массиве Branches и
по этому массиву можно узнать сочлененные (инцыдентные данной вершине)
вершины и задать перемещение на них.
← →
Cash © (2006-04-05 19:09) [39]Кривые руки, тег закрыть забыл! :)
← →
KiberKot © (2006-04-05 19:49) [40]Чесно говоря у меня щас нету времени основательно учить математику. Я щас сдаю диплом, и делаю на него эту стрелялку, здать мне его надо завтра :)
Щас я пытаюсь по быстрому переделать прогу из книги "DirectX графика в проектах Delphi. Щас мне надо что нибудь показать, что бы отцепились, типо 50% игры, а потом уже займусь основательно. Всегда хотел игры делать.
Так вот, может есть способ полегче, а то что то не очень понятно, как с этим работать. А я потом буду разберать то что ты предлагаеш.
← →
XProger © (2006-04-05 20:29) [41]KiberKot, больно стукни этого "кое кто" ибо играл он в Need For Kill в которой и 50% того, что в нашей Time For Kill нету...
"Всегда хотел игры делать."..."здать мне его надо завтра" ну зачем же надо было "хотеть" до крайнего срока? ;)
← →
Cash © (2006-04-05 20:35) [42]Хм, если надо простые хаотические движения, то нет ничего лучше
генератора случайных чисел! Random так сказать рулит! :)
Если у тебя есть момент поворота объекта на определенный угол,
то делай просто: один раз в секунду или в милли- микросекунду или в
тик, запускай примрно такой генератор:
Изменить угол поворота на (+/-)random(...) градусов;
можно перемещаться:=(random(...)=...);
Или что нибудь в этом духе. Прояви свое творчесое начало.
Изобрети "динаму". И с ее помощью задинамь, что это есть AI! :)
А там уж в полную силу за материал и писать свой AI-шник!
← →
KiberKot © (2006-04-05 21:14) [43]
> KiberKot, больно стукни этого "кое кто" ибо играл он в Need
> For Kill в которой и 50% того, что в нашей Time For Kill
> нету...
Да забей на всех, игра реальная и два года потрачено не зря. А этот кое кто, говорит что игра не плохая, а просто не верит что ее можно написать (или что то типо таго)
> "Всегда хотел игры делать."..."здать мне его надо завтра"
> ну зачем же надо было "хотеть" до крайнего срока? ;)
Просто затянул курсовую по VBA которуя , во первых не хотелось делать, во вторых у нас не одной пары в этом семестре небыло, на всех парах перней страдали, так что я вобщем и не знал как ее делать, но всетаки добил и сам написал БД.
> Cash
Да нет у меня никаких углов, кроме стрельбы побокам, в верх, низ и под углом 45 градусов.
Боты будут появлятбся после открытия определенных участков карты, а дальше что нибудь делать (наверно буду проверять растояние между героем и ботом, и исходя из этого, бот будет отбегать или подходить ближе).
← →
Cash © (2006-04-06 09:04) [44]KiberKot © (05.04.06 21:14) [43]:
А перемещаются боты как? То есть только в 4 стороны (вверх, вниз, влево
и вправо)?
Если так, то и сюда можно прикрутить угол поворота. Так просто легче
поворачивать бота.
Конечно, следует проверять близость плеера к ботам, а каждый бот пусть
решает переть к плееру или от него. Да да, все верно!
Во! у тебя же на карте есть всякие препятствия, и наверняк они где нибудь
в виде матрицы записаны. Так заставь бота просчитывать свой маршрут с
учетом этой карты препятствий. Такую вещь можно сделать с
использованием While цыкла:
while not((WpX=Ex)and(WpY=Ey)) do begin
Изменяем WpX и WpY на те, что поближе к плееру;
Проверяем, нет ли препятствия по этим координатам;
Если есть, то приближаем к боту самую близкую из WpX и WpY координат;
Записываем эти координаты в очередь маршрута;
end;
Это так, набросок. На практике там еще куча наворотов.
Ex и Ey - это положения плеера в этой матрице препятствий.
WpX и WpY - это положение осматриваемой ячейки матрицы на предмет
препятствий и, если оных нет, точка маршрута.
Тем самым бот прокладывает свой маршрут и прется на то место, где
заметил плеера.
← →
KiberKot © (2006-04-07 03:27) [45]
> А перемещаются боты как?
Перемещаются влево, право и подпрыгивают. Тоесть прыжок это тоже перемещение, но к проверке пути, я так понимаю его ненужно подключать
> Так заставь бота просчитывать свой маршрут с
> учетом этой карты препятствий
А какой вид будет иметь матрица , ведь двух координат будет не достаточно для описания объекта. В матрицу получается нужно засунуть координаты хотябы двух углов, верхнего левого и правого нижнего, а это чеырех мерный массив
> Во! у тебя же на карте есть всякие препятствия,
На карте у меня еще толком ничего нет, только герой, который стреляет и прыгает и куча врагов, которые бестолково носятся по земле оталкиваясь друг от друга и от границ экрана
← →
Cash © (2006-04-07 09:29) [46]KiberKot © (07.04.06 03:27) [45]:
Sorry men, я что то с дуру подумал, что у тебя вид сверху.
а из:... влево, право и подпрыгивают ...
ясно, что вид сбоку.
Эти выше описанные методы хороши для вида сверху, а тут - не применимы.
Тут наверное за советом надо к Darth XProger-у, по TFK.
← →
KiberKot © (2006-04-08 00:55) [47]
> Cash ©
> я что то с дуру подумал, что у тебя вид сверху.
> а из:... влево, право и подпрыгивают ...
Я в самом начале писал что вид с боку, правда не в описании игры
> Эти выше описанные методы хороши для вида сверху, а тут
> - не применимы.
ну почему не применимы, мне кажется из этого может что то толковое получиться, ну на крайняк, в матрице хранить не координаты обьектов, а действия бота в определенной месности. К примеру: бот идет на встречу к плееру, перед ходом проверяет точку на которой стоит, если данные координаты указаны в матрице, то делает нужные действия. Матрицу представить в виде (x1,y1,x2,y2,действие). Действие обозначить цифрой, к примеру 1-прыгать, 2-прохода нет повяртай назад. Если же по данной области нет особых указаний, смотреть по месту положения пользователя
Ну вот примерно так. Че думаеш про это ?
> Тут наверное за советом надо к Darth XProger-у, по TFK.
XProger, общетвенность (нас двое пока :) ) требует твоего вмешательства в данный вопрос. Помоги плииз
← →
XProger © (2006-04-08 08:06) [48]
// представление карты - блоки (в графике 16х16 каждый)
// 0 - занято, > 0 - свободно
// 1 - пустая клетка
// для бота
// BK_LEFT = 2 - идти влево
// BK_RIGHT = 4 - идти вправо
// BK_JUMP = 8 - прыгать
// BK_CROUCH = 16 - присесть
// BK_STAY = 32 - стоять (ждать врага)
map : array [0..39, 0..29] of WORD;
...
// обработка ввода для расчёта ускорения при движении
with Player, Acc do
begin
// Player.Keys : array
// Player.Acc : TVector
if Keys[Left] then X := -Horiz_Accel;
if Keys[Right] then X := +Horiz_Accel;
if Keys[Up] then Y := -JumpSpeed;
if Keys[Down] then X := X * chouch_k; // замедление в сидячем положении
end;
// если игрок не стоит на земле - на его ускорение действует гравитация
if not map[X div 16, Y div 16] then
Acc.Y := Acc.Y + gravity
else
Acc.Y := 0;
// Расчёт столкновений (кривой)
if map[(X + Acc.X) div 16, Y div 16] > 0 then X := X + Acc.X;
if map[X div 16, (Y + Acc.Y) div 16] > 0 then Y := Y + Acc.X;
Для ботов будет отличаться только взятие состояния клавишk := map[X div 16, Y div 16];
if k > 1 then // если блок-действие для бота
begin
if k and BK_LEFT > 0 then Keys[Left] := True;
if k and BK_RIGHT > 0 then Keys[Right] := True;
if k and BK_JUMP > 0 then Keys[Up] := True;
if k and BK_CROUCH > 0 then Keys[Down] := True;
if k and BK_STAY > 0 then
begin
Keys[Left] := False;
Keys[Right] := False;
Keys[Up] := False;
Keys[Down] := False;
end;
end;
Ошибки в коде не исключены, но общая логика должна быть понятна :)
← →
KiberKot © (2006-04-08 12:54) [49]
> XProger ©
Все понятно, кроме одного, как бот будет узнавать что ему делать, то есть
как будут задаваться флаги
> if k and BK_LEFT > 0 then Keys[Left] := True;
> if k and BK_RIGHT > 0 then Keys[Right] := True;
> if k and BK_JUMP > 0 then Keys[Up] := True;
> if k and BK_CROUCH > 0 then Keys[Down] := True;
> if k and BK_STAY<b/> > 0 then
я так понял, что каждый из них надо будет задать вручную в массиве
> map : array [0..39, 0..29] of WORD;
а если так, то зачем делить экран на пустые и заполненные клетки
← →
XProger © (2006-04-08 13:36) [50]Игровая карта представляется в виде набора клеток занятых и свободных. Помимо этого свободные клетки могут давать некие указания боту.
Задавать вручную или динамически (придумай алгоритм ;)map[i, j] := BK_LEFT or BK_JUMP; - прыгнуль влево
map[i, j] := BK_RIGHT or BK_CROUCH; - ползти гуськом вправо
и т.п.
Вообще, задачу расстановки подобных флагов рациональнее реализовать в редакторе уровней.
← →
KiberKot © (2006-04-08 14:26) [51]Ну в принцепе по игре все понятно, если возникнут какие вопросы, буду
спрашивать. Спасибо всем за помощь, пошол делать мега игру :))
← →
WillRock © (2006-10-19 13:07) [52]Классную дискуссию развели.
Спасибо вам всем за данные ответы..они мне помогут..
У меня остался один тупой вопрос ))
Как проверять столконвения м/у прямоугольником и окружностью? ))
просьба ногами не пинать ))
Просто я ни разу как то этим не занимался )
← →
Shirson © (2006-10-19 14:39) [53]http://www.gamedev.ru/articles/?id=70124
← →
@!!ex © (2006-10-19 19:48) [54]Эх... неуспел поучавствовать... :\
Но все равно вставлю свое ИМХО!
Программер без математики, как свадьба без невесты...
НЕзная математики ниче толвокого не напишеш, тем более в играх.
Страницы: 1 2 вся ветка
Текущий архив: 2007.10.07;
Скачать: CL | DM;
Память: 0.63 MB
Время: 0.092 c