|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Readme. Создание игры Танчики
Здравствуйте!
Уважаемые участники форума, хотелось-бы попросить вас о помощи. Не давно началось курсовая на языке программирования Delphi. И на стал момент когда учитель спросил меня "что я буду программировать" и, со скоку я ответил что игра Танчики... Вот теперь друзья я задумываюсь с чего начать, как сделать и поможет ли мне кто нибудь? |
#2
|
||||
|
||||
Начни с начала. Возьми листок, карандаш и распиши как это всё представляется. Потом пытайся части своего проекта переводить в код. А вот когда возникнут конкретные вопросы, задавай их.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
||||
|
||||
Цитата:
а вот, теперь надо писать глобальные перемены, алгоритмы что к чему прям голова вариться ;( Последний раз редактировалось AKIFKA, 29.09.2012 в 01:59. |
#4
|
||||
|
||||
Хорошо хоть не bottle
Battle, гений. Зачем брался, если опыт на нуле? Бери теперь книги, и читай. Много читай. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#5
|
||||
|
||||
Цитата:
Цитата:
Это конкретный вопрос что не получается? Написать за вас? В работу, в халяву. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#6
|
||||
|
||||
ТАнчики........
Я пишу(пока в голове) тоже наподобие танчиков, и это, скажу вам сэр задача не из легких.. Приведу пример, с чего я начал этот проект(самые самые нюансы): 1. постановка задачи(цель игры).. Управляя неким объектом,в некотором пространстве, попасть на следующий уровень(локацию) если будут выполнены некоторые условия(уничтожение какое-то количество ботов или достижение какой-то точки) При этом: Пространство непрерывное(векторное), неоднородно(состоящее из каких-то препятствий, зон с определенным уровнем прохождения). Следовательно, управляемый объект не должен проходить сквозь стены. Боты, двигаясь к своей цели, должны обходить эти препятствия, причем, каждый бот, является препятствием для другого бота. 2. Разработка. а. Создание алгоритма взаимодействия управляемого объекта с пространством(управление). в. Создание алгоритма поведения бота(ИИ):взаимодействия ботов с игровым пространством, его поведение при определенных ситуациях. дальше расписывать не буду, но скажу, что управление объектом делается на раз два, т.е. чистая тригонометрия. Самое сложное ИИ ботов, а точнее их взаимодействие между собой(кто кого должен пропускать, если например двое ботов пытаются попасть в одну "дырку", или что делать ботам, если один встречается у другого на пути(кто кому должен уступить) Пока я пришел к тому, что нужно, походу, разработать ПДД для ботов(способ не слишком гибкий), но эта идея пока мне не нравиться.. Своими рассуждениями, я хочу показать с чем вам придется столкнуться... Выберите, лучше, попроще тему, я когда-то писал пак-мен(2-й курс). Это как говориться классика жанра. |
Этот пользователь сказал Спасибо Pilot_Red за это полезное сообщение: | ||
AKIFKA (29.09.2012)
|
#7
|
||||
|
||||
Pilot_Red, да это самое простое, что ни есть Все это у меня сделано, и юниты норм ездят, и если один режим включить, то и стреляют без промаха (со второго раза - 100%). А я вот остановился на звуке - не мое это. Чет перепады громкости наблюдаются, когда сэмплов много. А так игра почти законченная. Даже редактор уровней есть (кстати, с него я начинал первым, тогда более понятно, что делать дальше). Жаль залить не могу - из-за текстур и звуков весит 20 мб. А так все реализовано:
—Нахождение кратчайшего пути на карте. Поиск происходит по ячейкам волновым алгоритмом - так лучше всего (оптимальнее). —Проверка столкновений(для ботов и не требуется теоретически, ибо они в преграду то и не едут). —Проверка на видимость врага(тоесть меня). —Взаимодействие юнитов - не стрелять по своим, каждый юнит занимает определенные ячейки на карте, соответственно другие юниты его огибают при движении. —Если бот увидел одну цель - атаковать, пока не убьешь или не убежит, на других не отвлекаться (там у меня проработано "возвращение во времени" - если тебя убили, все возвращается в исходное положение, ездит твой (твои) клон(ы) из прошлого, повторяют твои предыдущие действия. —Все обьекты разрушаются, как самым танком, так и пулями/снарядами/ракетами. Клоны при движении идут напролом-крушат все к чему прикоснутся —Есть поверхности-трава, грунт, дорога, вода с соответствующими проходимостями. Вот и все, похоже. А делал не так уж долго-летом в августе, в сентябре уже не открывал проект даже. Так что не так уже сложно, если учесть, что половину написанного здесь я уже когда-то реализовал на java ME |
#8
|
||||
|
||||
Цитата:
Как я уже сказал, моя версия будет реализована на непрерывном пространстве(так реалистичнее). Моделируя ИИ бота, иногда при определенных ситуациях получаются коллизии(решением которых я как раз и занимаюсь). Скинь на какой нибудь ресурс, я посмотрю твои танчики. |
#9
|
||||
|
||||
Даа Конечно Постоновка задачи готова, пример ,уничтожел все танчики на своем уровне перешол на другой тур, а если уничтожели тебя ТО GAME OVER
конечно не из легких, но начел... вот буквально Часа три назад и конечно же вышла ошибка, Посмотришь? http://zalil.ru/33800554 |
#10
|
||||
|
||||
Код:
procedure TForm1.FormCreate(Sender: TObject); var i,j:integer; begin path:=extractFileDir(Application.ExeName); //Загрузка картинок танков for i:=1 to 4 do for j:=1 to 2 do begin Tanki[1,i,j]:=Tbitmap.Create; Tanki[2,i,j].TransparentColor:=clwhite; Tanki[1,i,j].LoadFromFile(path+'\img\'+'t'+inttostr(i)+inttostr(j)+'.bmp'); Tanki[2,i,j]:=Tbitmap.Create; Tanki[2,i,j].TransparentColor:=clWhite; Tanki[2,i,j].LoadFromFile(path+'\img\'+'q'+inttostr(i)+inttostr(j)+'.bmp'); end; 11011111 INED Home code VK |