Я нахожусь в стадии планирования маленькой игры в стиле RPG.
У персонажа будет набор атрибутов, таких как сила, ловкость и т. Д., Которые представлены в виде целых чисел. У персонажа также будет набор атак, представленный как класс атаки.
При каждой атаке я хочу, чтобы она наносила урон в зависимости от атрибутов персонажа, например: атака «удар мечом» будет наносить 10 урона + значение силы персонажа.
Я думал об этом, чтобы иметь абстрактный класс атаки, который имеет абстрактный метод Attack, и для каждой атаки я создаю один класс, который реализует метод Attack.
public class SwordSlash:Attack
{
public void Attack(Character attacker, Character defender)
{
defender.DoDamage(10 + attacker.Strength);
}
}
Я вижу, что это станет кошмаром для поддержания.
Кто-нибудь имеет представление о том, как я могу сделать это лучше?
Я думаю, что основная проблема заключается в том, как правильно ввести атрибут, основываясь на атаке.
источник
Вы хотите прочитать Совокупность объектов через компоненты и конструкцию игровых объектов Rabbit Hole из блога Replica Island .
источник
У меня был бы класс оружия, у которого есть метод атаки, который вы переопределяете на поведение, которое хотите. Затем вы также можете управлять тем, как оружие выглядит в игре, в инвентаре, за сколько оно продается и т. Д. В том же классе.
источник
Я действительно новичок в этом, но я бы создал общий класс атаки.
Когда один экземпляр персонажа хочет атаковать другой экземпляр персонажа, он создает экземпляр класса атаки, заполненный требуемыми данными и идентификатором персонажа, который его создал. Корректировки от экипировки будут затем применяться к объекту атаки, используя данные, которые могут быть введены в XML-документ или аналогичный.
Этот экземпляр класса затем будет обернут внутри другого класса, чтобы обеспечить хуки для среды для определения диапазона или подобного. Если атака действительна, экземпляр атаки будет передан атакующему персонажу, который будет применять эффекты.
Надеюсь, что это имело смысл.
источник