Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2009, 18:39   #111
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

А там про проходимость есть?
Shadow_1329 вне форума Ответить с цитированием
Старый 07.06.2009, 19:31   #112
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Я полностью согласен с pu4koff.
Сейчас пишу игру, и в принципе делаю почти также.
Levsha100 вне форума Ответить с цитированием
Старый 07.06.2009, 20:14   #113
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Shadow_1329, ...с полноценным поиском пути.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 07.06.2009, 23:15   #114
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию Пример...

Значится так, ...пример совсем сырой, на сколько хватило времени. Танк один, создан прям в коде по ячейке массива UnitsMas[1], если нужно танки, заполняем следующие ячейки и по правилам. Еще чего нет, ...нет выделения, доделайте самостоятельно, условие на GTSelected, плюс разделение клавиш мыши на правую и леву, в каждой свои действия, ...коордмнаты карты найдете как определять, туда цикл на проверку массива юнитов, если координаты совпадают то значит выделен один танк, все остальные, что в игре GTSelected := False;
На поиске пути использован готовый модуль, немного подправленный PathFind.pas
Анимацию танка сделал новую, psd-файлы Фотошопа там же, может пригодится.

В общем, заценивайте, и потом по ходу разбор полетов, вопросы и пр.
Вложения
Тип файла: zip WW II - Tanks.zip (489.0 Кб, 34 просмотров)
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 08.06.2009, 09:57   #115
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Неплохо, правда система поиска пути несовершенна(в примере если постараться можно наехать и на дерево, и на еж, и на дом).
А с использованием типа конечно удобно, но классами тоже ничем не хуже.
Изображения
Тип файла: jpg Screen.JPG (14.9 Кб, 87 просмотров)
Вадим Буренков вне форума Ответить с цитированием
Старый 08.06.2009, 10:55   #116
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
Радость

Отлично. Правда я не очень там понял. Много информации! Попытаюсь все что я узнал внедрить в свою стратегию. Пойду разбираться в коде проходимости. Спасибо за помощь!
Shadow_1329 вне форума Ответить с цитированием
Старый 08.06.2009, 11:04   #117
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

И еще я вместо PathFind свой напишу алгоритм(только что его придумал).
Просто для меня использовать дополнительные библиотеки - это кара. Я вручную забабахаю(постараюсь). Но все равно спасиб!
Shadow_1329 вне форума Ответить с цитированием
Старый 08.06.2009, 11:57   #118
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Beermonza Посмотреть сообщение
В общем, заценивайте, и потом по ходу разбор полетов, вопросы и пр.
Меня корёжит наличие goto и отсутствие else и case блоков, где им самое место (Где клавиши обрабатываются, например, case самое место, ну на край if/else использовать, а не кучу отдельных if'ов)
pu4koff вне форума Ответить с цитированием
Старый 08.06.2009, 15:48   #119
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

pu4koff, а меня никакой метод не корёжит, может я просто индивид некорёжистый ))) ...case требует внутри себя четкие значения, по пунктам или перечисление, в условиях If можно использовать переменные, считывающиеся с файла конфигурации, по крайней мере я это вижу сразу.
goto - срадни jump в ассемблере, уж там это никого не корёжит, меня здесь тоже, ...если я напишу else и так условия одно в другое заверну, то потеряю зримую логику кода, ...это проверено временем.

Я знаю что поиск пути дает сбой, дело в том что я не писал отдельной процедуры на его запуск, ...вы ее напишете сами. Такие проблемы с наездами возникают при смене пути за одну клетку до препятствия, проверок там просто нет, ...извиняйте, что успел, то показал.

Цитата:
Сообщение от pu4koff
Где клавиши обрабатываются, например, case самое место
Может я хочу сразу две клавиши жать, вправо и вниз.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его

Последний раз редактировалось Beermonza; 08.06.2009 в 15:56.
Beermonza вне форума Ответить с цитированием
Старый 08.06.2009, 16:07   #120
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Beermonza Посмотреть сообщение
goto - срадни jump в ассемблере, уж там это никого не корёжит, меня здесь тоже, ...если я напишу else и так условия одно в другое заверну, то потеряю зримую логику кода, ...это проверено временем.
Ну как говорится на вкус и цвет... Просто goto - потенциальный грабель, на который можно легко наступить. Помню на первом курсе первую мою лабораторную работу не приняли именно из-за goto. Пришлось на if'ы переделывать, но таки благодарен, что так меня сразу отучили от этого оператора.
Но, хозяин-барин, как говорится
Цитата:
Сообщение от Beermonza Посмотреть сообщение
Может я хочу сразу две клавиши жать, вправо и вниз.
Только тут:
Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
// сдвиг для карты
  If Key = VK_RIGHT then Inc(MapDispX, 1);
  If Key = VK_LEFT then Inc(MapDispX, -1);
  If Key = VK_UP then Inc(MapDispY, -1);
  If Key = VK_DOWN then Inc(MapDispY, 1);
...
это не сработает всё равно (событие срабатывает при нажатии клавишу, а соответственно если нажать влево и ввверх, то карта поедет или влево или вверх, но не по диагонали), но зато лишние проверки выполняются каждый раз
а case как раз сюда подошел бы как влитой
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создаю "тестирующую систему" для проверки задач. Программисты, нужна ваша помощь! alexfmf Помощь студентам 12 30.04.2009 20:19
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49