Сейчас мы создаём игрока в два этапа: сначала вызываем new Player(), а затем отдельными строками задаём здоровье, золото, опыт и уровень. Всё работает, но можно передать эти значения прямо при создании объекта. Для этого нужен конструктор класса. В этом уроке разберусь, как он устроен, на примере локаций и квестов. Конструктор — это специальный блок кода, который выполняется при создании объекта. С его помощью можно задать начальные значения свойств и подготовить объект к работе. Мы уже вызывали...
Техноварварская кузница
Наследование и базовые классы
В проекте Engine уже есть семь классов: HealingPotion, Item, Location, Monster, Player, Quest иWeapon. Некоторые свойства в них повторяются. У предмета, оружия и лечебного зелья есть ID, Name и NamePlural. У игрока и монстра — CurrentHitPoints и MaximumHitPoints. Теперь разберёмся, как объединить общие свойства с помощью наследования и когда это имеет смысл. Оружие и лечебное зелье — разновидности предметов. У них есть общие характеристики, но есть и особенности: оружие наносит урон, а зелье восстанавливает здоровье...
Создание остальных классов
Класс Player уже готов. Теперь добавим остальные части игрового мира: предметы, оружие, лечебные зелья, локации, монстров и квесты. Новых конструкций языка в этом уроке не будет. Мы закрепим то, что уже разобрали: создание классов и объявление свойств. Такие классы иногда называют классами предметной области. Они описывают сущности, с которыми работает программа. В нашем случае это персонажи, предметы и другие составляющие игры. Также можно встретить термины «бизнес-классы» и «бизнес-объекты» — они используются и за пределами деловых приложений...
Создание объектов на основе классов
В прошлом уроке мы описали класс Player и добавили свойства персонажа. Теперь создадим конкретного игрока, зададим его характеристики и выведем их на экран. В этом уроке разберёмся: Класс Player описывает, какие характеристики будут у персонажа. Но самого персонажа в программе пока нет. Чтобы начать с ним работать, нужно создать экземпляр класса, то есть объект. Этот процесс называется созданием экземпляра, или инстанцированием. После этого мы сможем задать здоровье игрока, выдать ему начальный запас золота и показать эти значения на форме...
Создание класса Player и его свойств
Теперь займёмся персонажем игрока. Для него создадим класс Player, в котором опишем нужные нам характеристики: здоровье, золото, опыт и уровень. Но сначала разберёмся, что такое свойства и типы данных. Свойства позволяют читать и, если это предусмотрено, изменять значения, связанные с объектом. Например, у персонажа есть определённое количество золота. После победы над монстром оно может увеличиться, а после покупки предмета — уменьшиться. Чтобы программа могла учитывать эти изменения, ей нужно хранить текущее значение и предоставлять к нему доступ...
