Quindi stavo pensando a quanto monolitico le mie lezioni passino molto tempo. Ad esempio, nel metodo Characterdella classe Jump, si può avere un riferimento a un oggetto di effetto sonoro e riprodurlo. Di per sé va bene, ma quando si tiene conto di fisica, animazione, collisione, ecc., Il metodo Jump diventa enorme e la Characterclasse ha molte dipendenze da molte cose diverse. Tuttavia, potrebbe andare bene. Tuttavia, cosa succede se non vogliamo più riprodurre un suono quando il personaggio salta? Ora, dobbiamo trovare quella specifica riga di codice nel pasticcio confuso del Jumpcodice e commentarlo o altro.
Quindi .. stavo pensando ..
E se invece ci fosse una sorta di AudioSystemclasse e tutto ciò che ha fatto è stato iscriversi a eventi casuali a cui è interessato in altre classi. Ad esempio, la Characterclasse potrebbe avere un Jumpedevento (anche statico, suppongo) che viene generato all'interno della Characterclasse nel metodo. Quindi, la Characterclasse non saprebbe nulla del piccolo effetto sonoro che viene riprodotto quando il personaggio salta. Il AudioSystemsarebbe solo una classe enorme che il programmatore potrebbe ritirarsi a collegare gli effetti sonori con alcuni eventi che accadono nel gioco attraverso l'utilizzo di eventi statici. Poi, se si fosse troppo grande potrebbe essere separato per sottoclassi come EffectsAudioSystem, BackgroundAudioSystem, AmbientAudioSystem, eccetera.
Quindi, nelle opzioni per il gioco, si potrebbe avere una casella di controllo per abilitare o disabilitare questo tipo di suoni e tutto ciò che dovrebbe essere fatto è solo disabilitare quel sistema con un semplice e singolo flag booleano. Questa idea di sistemi potrebbe anche essere estesa a cose come la fisica, le animazioni, ecc. Al punto in cui la maggior parte delle risposte al gioco risultanti dalle azioni dei giocatori sono collegate attraverso questi sistemi elaborati e disaccoppiati.
Ok, quindi la mia domanda potrebbe essere un po 'vaga, ma come suona questo genere di cose? Non ho mai sentito parlare di molti tipi di discorsi su questo tipo di sistema. Questo è tutto nella mia testa in questo momento senza alcuna codifica fatta finora, quindi forse è uno di quei tipi di affari "buoni in teoria ma non in pratica". Questo tipo di sistema funzionerebbe con un gioco più grande o alla fine si guasterebbe e diventerebbe ancora più un pasticcio di spaghetti rispetto al sistema originale?