Движок обрабатывает весь код, который является избыточным при расчете урона для каждого персонажа.Персонажи будут вынуждены делать все остальное.
Я не знаю много о том, какую игру вы делаете.Но для некоторых игр, когда движку сообщают, что A атакует B, код может выглядеть примерно так:
//somewhere in your engine:
damage = A.get_damage(B);
trace (damage); // {damage:60, hit_chance = 0.8}
B.send_damage(damage);
Я считаю, что в большинстве случаев необходимо иметь B.send_damage()
, а не движокнепосредственно контролируя атрибут здоровья Б. ИИ, как правило, зависят от состояния.Вероятно, будут некоторые переменные, которые являются исключительными для A или B, которые влияют на урон (например, непобедимость), и (IMO) лучше, чтобы двигатель не знал об их существовании (или вы в конечном итоге получите огромные блоки переключателей;)
Вы видите, как я должен был отправить B в качестве аргумента в A.get_damage()
?К сожалению, это часто необходимо при таком подходе.Урон A / Hit_chance может зависеть от того, как далеко B находится от A.