Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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% игры, а потом уже займусь основательно. Всегда хотел игры делать.
Так вот, может есть способ полегче, а то что то не очень понятно, как с этим работать. А я потом буду разберать то что ты предлагаеш.



Страницы: 1 2 вся ветка

Текущий архив: 2007.10.07;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.042 c
15-1189275380
OlegZp
2007-09-08 22:16
2007.10.07
Помогите восстановить Internet Explorer


15-1189084593
Yurikon
2007-09-06 17:16
2007.10.07
WinHelp и кириллица


15-1189185382
delphiForever
2007-09-07 21:16
2007.10.07
просьба не ржать...


15-1188973346
de.
2007-09-05 10:22
2007.10.07
Город мастеров (Полу сабж, полу вопрос... :)


2-1189493063
tomkat
2007-09-11 10:44
2007.10.07
поиск подкаталогов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский