In ogni gioco uno sviluppatore deve in qualche modo gestire l'input, che si tratti di semplici eventi da tastiera e mouse, eventi touch o qualcosa come input dell'accelerometro. Questo input direttamente di oggetti indirettamente effetti nel gioco. A volte lo stesso input può influenzare oggetti diversi. Ora ho pensato a come modellarlo. Per come la vedo io ci sono due approcci diversi.
Lascia che l'oggetto di gioco stesso lo gestisca, iscriviti agli eventi e chiama i suoi metodi. Ciò ha il vantaggio di permettere agli oggetti di gioco stessi di decidere quali input causano quale azione. Uno svantaggio sembra essere che il codice di input viene alterato con il codice dell'oggetto di gioco "core". Inoltre, gli oggetti di gioco non sono consapevoli dello stato del resto del gioco e talvolta potrebbero non agire su eventi di input. Questo non sembra giusto.
Chiedi a un controller di input generale di occuparsi di tutti gli input e prendere decisioni su chi deve gestire quale evento. Questo sembra separare meglio le preoccupazioni, ma accoppia strettamente la classe controller di input agli oggetti di gioco. In qualche modo ha bisogno di sapere chi vuole ricevere quale evento e in quale stato. Neanche questo sembra giusto.
Quali strategie stai usando per gestire questo?