Регистрация: May 2012
Сообщений: 18
|
Насколько умным (активным) должен быть объект в игре?
Вот, например, есть "герой". Пусть, для простоты, у него есть свойства "защищен"(тру-фолс), "состояние"(идет-корчится-умер) и методы "изменить состояние" и "изменить анимацию". Он идет. Ну, и его может укусить враг (тогда он корчится). Он может найти "волшебство", и тогда на какое-то время он "защищен", укус врага на него не действует. Если он укушен три раза, он умирает.
Вариант1: все управление героем идет из объекта "игра". Игра отслеживает, когда героя укусит враг, смотрит его свойство "защищен, и если он не "защищен", вызывает его методы "изменить состояние" и "изменить анимацию", чтобы он корчился, сама отслеживает когда анимация корчения завершается, и опять же вызывает его методы "изменить состояние" и "изменить анимацию" чтобы он шел. Игра же отслеживает, когда он находит "волшебство", изменяет его свойство на "защищен", отслеживает, когда "волшебство" заканчивается, и изменяет свойство героя "защищен" на фолс. Считает, сколько раз он укушен, и если три раза, то опять меняет его свойства и анимацию на "умер".
Вариант2: герой подписан на события "укус врагом", "найдено волшебство", "волшебство закончено" и сам себя изменяет соответственно. А также диспачит события типа "начал корчиться", "закончил корчиться" (авось еще кому пригодится). Сам считает, сколько раз он укушен, и если три раза, то меняет себя на "умер" и диспачит соответствующее событие.
Вариант3. Некий промежуточный. Часть делает герой, часть - игра.
Что будет предпочтительнее с точки зрения: 1) общепринятых правил 1) дальнейшей простоты управления игрой 2) эффективного использования ресурсов? - при условии, что свойств и методов и возможных действий на самом деле намного больше.
Ну, или, скажем так: как предпочитаете делать Вы, и почему?
(Ну, аналогично вопрос можно распространить на все другие объекты игры)
И если есть ссылки на почитать про это, тоже буду рада.
Последний раз редактировалось kukareku; 09.06.2012 в 11:57.
|