Напевно, у кожній грі розробнику доводиться якось мати справу з введенням даних, це можуть бути прості події клавіатури та миші, події на дотик або щось таке, як акселерометр. Це введення безпосередньо опосередковано впливає на предмети в грі. Іноді один і той же вхід може впливати на різні об'єкти. Зараз я думав над тим, як це моделювати. Я бачу це два різні підходи.
Нехай ігровий об’єкт сам обробляє це, підписуйтесь на події та називайте його власними методами. Це має перевагу в тому, щоб дозволити самим ігровим об’єктам вирішити, які входи викликають яку дію. Недоліком, здається, є те, що вхідний код змішується з "основним" ігровим об'єктним кодом. Крім того, ігрові об'єкти не знають про стан решти гри, а іноді, можливо, не можуть діяти під час вхідних подій. Це не здається правильним.
Запропонуйте загальному контролеру вхідного сигналу піклуватися про всі вхідні дані та приймати рішення щодо того, хто може обробляти яку подію. Це, мабуть, краще розділяє проблеми, але чітко з'єднує клас вводу-контролера з ігровими об'єктами. Це якось потрібно знати, хто хоче отримати яку подію та в якій державі. Це теж не здається правильним.
Які стратегії ви використовуєте для вирішення цього питання?