воскресенье, 22 апреля 2012 г.

Давайте сделаем рогалик. Глава 25: Обобщаем атрибуты персонажа

В следующей главе мы будем добавлять зелья в нашу игру. Зелья будут влиять на атрибуты персонажа, но в данный момент доступ к атрибутам не очевиден. Если вы помните, для каждого атрибута мы создали массив размерностью в 3 элемента. Значение с индексом 0 содержит базовое значение характеристики, 1 — бонус и 2 — время действия бонуса заданное в ходах. И хотя это работает, возможно спустя некоторое время увидев в коде программы число 0 мы не будем знать, что это за значение и что оно означает. Вместо использования 0-ля мы можем использовать мнемоническое значение, например idxAttr, которое будет указывать на базовое значение атрибута. Это гораздо яснее и позволяет изменять программу очень легко, просто изменив значение idxAttr.

Давайте сделаем рогалик. Глава 24: Волшебные жезлы

Волшебные жезлы являются одним из основных типов оружия в большинстве рогаликов, и «Подземелье Судьбы» казалось бы не завершенным, если бы мы их не реализовали. Есть два пути реализации применения жезлов в игре, в качестве магического оружия — когда жезл используется для создания волшебниками заклинаний, и в качестве наступательного оружия. Лично я склоняюсь к использованию жезлов способом, который я подсмотрел во Властелине Колец, т. е. в качестве наступательного оружия. Поскольку у нас уже реализованы дистанционные атаки, то, вполне естественно, что жезлы будут добавлены в игру как еще один тип дистанционного оружия. Как вы увидите, добавить их будет достаточно легко.

Давайте сделаем рогалик. Глава 23: Балансируем атаки монстров

На данном этапе мы можем добавить некоторые хитрости, которые улучшат игровой процесс. В текущей версии монстры получились достаточно сильными и играть очень тяжело. Мы должны исправить это, и сделать это очень просто. Мы добавим коэффициент масштабирования, зависящий от глубины уровня подземелья, который будет изменять наносимый монстрами урон. Нам необходимо добиться уменьшение величины урона, наносимого монстрами, на какую то величину, зависящую от глубины уровня подземелья, которая будет уменьшаться со спуском персонажа на более глубокие уровни, пока наносимый монстрами урон не достигнет своего максимального значения. К тому времени, как игрок достигнет самого глубокого уровня, его персонаж должен быть достаточно сильным, чтобы справится с дерущимися без поблажек монстрами.

Давайте сделаем рогалик. Глава 22: Дистанционный бой

При первом рассмотрении, кажется, что добавить дистанционные атаки достаточно просто. Мы должны выбрать цель, запустить снаряд и проверить — попали ли мы им куда либо. Рассмотрев задачу более подробно, мы можем разложить ее на несколько простых подзадач, которые нам необходимо реализовать:

  • Система выбора цели
  • Боеприпасы и их количество
  • Система перезарядки оружия
  • Анимация атаки
  • Расчет повреждений

Как вы можете видеть, действий, которые необходимо совершить, достаточно много, и их реализация потребует достаточного количества кода. Рассмотрим все по порядку.