Работа процесса генерации - наложение расы и класса героя на распределение его основных параметров и навыков. Сделать это можно самыми разными способами. Существует множество описаний правил ролевых игр, в которых несложно разобраться, мы ж опять-таки в основном в учебных целях, воспользуемся способом имитирующим подходы сложных систем.
Пока что наш герой, несмотря на способность жить в виртуальном мире и даже вести сражение, как выражаются профессионалы ролевых игр, не сгенерирован - для него не созданы базовые параметры (значения массива Chars),благодаря которым он будет иметь определенную индивидуальность и отличаться от других героев в лучшую или худшую сторону.
Продолжаем обучать монстров преследованию жертвы Выходов из логического тупика два, который обсуждался в прошлом выпуске, два. Классические подходы позволяют определять полный путь из одной точки до другой на карте со сложно проходимым рельефом. Однако процедура эта весьма ресурсоемкая. Поэтому реализации таких алгоритмов выполняются как правило не для всей карты, а для определенного ее участка.
Монстры бросаются в погоню. Битвы в нашей игре приобрели подобие реальных схваток, им не хватает малости. Хотя монстры и научились давать сдачу, они пока не умеют преследовать персонажа.
Поэтому герой в случае неудачно развивающейся схватки может без проблем покинуть поле боя, восстановить силы в источнике, после чего вновь напасть на ослабевшего и недвижимого монстра.
Займемся монстром, когда он все же получил повреждение? Его здоровье проверяется, когда оно становится меньше или равным нулю, считается, что он убит и герой получит причитающийся ему за победу опыт:
В какой момент будет начинаться схватка героя с монстрами? Так как мы остановились на одном типе оружия - ручном, ближнего боя, то схватку разумно начинать, когда герой находится в непосредственном контакте с противником - на соседней клетке с ним. Пока персонаж свободно проходит через тайлы с монстрами, сейчас мы это запретим:
Основываясь на своем опыте, хотелось бы внести ряд предложений:
Если представить карту в виде массива ссылок, то ограничения на размер в ДОС полностью снимаются. Точнее в ТР6 они составят что-то около 1М (в незащищенном режиме).
Предметы (их свойства), монстров (их хар-ки), описание героев лучше держать во внешних файлах (например, стандартных БД). Это позволит сразу абстрагироваться от данных и сосредоточиться на алгоритмах работы.
Давайте снабдим героя в начале игры двумя предметами - легкой броней и недорогим топором. Положим эти предметы ему в рюкзак с помощью следующих операторов процедуры InitHero:
Теперь все готово для реализации самой, пожалуй, важной части программы - сражений. Пока нам остается выполнить заключительный этап подготовки к бою и научить героя использовать оружие и одевать броню. Добавим в структуру ТНerо массив Items, представляющий собой набор предметов, несомых героем в рюкзаке. Максимальный объем рюкзака ограничим 12 предметами
В сегодняшней статье хотелось бы поговорить о реализации магических заклинаний в компьютерных играх. Ведь магия в играх гораздо зрелищней простых ударов персонажей. А зрелищность игры влияет на ее популярность. Среди новичков бушует мнение, что создание магии – очень трудное и время затратное занятие. Но на самом деле нужно лишь понять как это все работает. Мы попробуем на простом примере разобрать этапы создания магии в компьютерных играх.