In wahrscheinlich jedem Spiel muss sich ein Entwickler irgendwie mit Eingaben befassen, es können einfache Tastatur- und Mausereignisse, Berührungsereignisse oder etwas wie eine Beschleunigungsmessereingabe sein. Diese Eingabe wirkt sich direkt oder indirekt auf Objekte im Spiel aus. Manchmal kann dieselbe Eingabe unterschiedliche Objekte beeinflussen. Jetzt habe ich darüber nachgedacht, wie ich das modellieren soll. Meines Erachtens gibt es zwei verschiedene Ansätze.
Lassen Sie das Spielobjekt selbst damit umgehen, abonnieren Sie die Ereignisse und rufen Sie seine eigenen Methoden auf. Dies hat den Vorteil, dass die Spielobjekte selbst entscheiden können, welche Eingaben welche Aktion auslösen. Ein Nachteil scheint zu sein, dass der eingegebene Code mit dem "Kern" -Spielobjektcode verfälscht wird. Außerdem kennen die Spielobjekte den Status des restlichen Spiels nicht und sollten manchmal möglicherweise nicht auf Eingabeereignisse reagieren. Das scheint nicht richtig zu sein.
Lassen Sie alle Eingaben von einem allgemeinen Eingabecontroller erledigen und entscheiden, wer mit welchem Ereignis fertig wird. Dies scheint die Bedenken besser zu trennen, koppelt aber die Input-Controller-Klasse eng mit den Spielobjekten. Es muss irgendwie wissen, wer welches Ereignis in welchem Zustand empfangen möchte. Dies scheint auch nicht richtig zu sein.
Mit welchen Strategien gehen Sie damit um?