2015-10-30 3 views
0

Я делаю текстовую RPG для удовольствия. Я работаю над своей боевой функцией, которая будет контролировать, как работают боевые действия и т. Д.Использование функции с неизвестным типом аргумента?

У меня есть класс сущности с основными переменными, которые будут иметь все остальные «сущности» в игровом мире. Оттуда у меня есть разные классы монстров, такие как «крыса», «голем», «дракон» и т. Д. Эти специфические классы врагов наследуют переменные в классе сущности.

Боевая функция имеет два аргумента, героя (игрока) и врага, с которым будет сражаться герой. Проблема в том, что я не знаю, какой тип класса будет врагом. Иногда это будет крыса, голем и т. Д.

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

Есть ли способ сделать это?

+0

Показать код. –

+1

Но вы знаете, что герой будет сражаться с сущностью. Добавьте к классу сущности соответствующие методы, необходимые для ведения боя. – user4581301

+0

проблема, которая может быть решена полиморфизмом. Вы считали это? – Nandu

ответ

1

Если вы можете разрешить без отдельной функции, вы можете использовать свой класс сущности для атак.

... 
virtual void attacked(Player pObject)=0; 
... 

Эта чистая виртуальная функция может быть записана в родительском режиме, поэтому каждый дериват будет иметь специальный метод атаки.

+0

@ user4581301 Извините, я не читал комментарии. Я отдал тебе верх. – Lasoloz

+0

Не разорвать вас. Я был на полпути, отправив почти идентичный ответ, когда вы разместили сообщение. – user4581301

+0

@ user4581301 ОК, знаешь что? Предложите редактирование и укажите в нем свое имя. – Lasoloz

Смежные вопросы