Questa è una domanda di progettazione ... Sono sicuro che questo potrebbe essere generalizzato di più, ma sto facendo fatica a farlo. Mi chiedo il design per le interazioni con gli oggetti di gioco: ecco il mio esempio (puzzle-platform 2D).
Supponiamo che il giocatore stia provando ad avanzare di livello. Ci sono molte luci che possono essere puntate in diverse direzioni. Ecco un esempio di come questi oggetti luminosi potrebbero interagire ...
- Una luce proietta una piattaforma che consente al giocatore di attraversare un gap
- Una luce riduce i coefficienti di attrito di qualsiasi cosa tocchi, un'altra la aumenta
- Una luce annulla gli effetti di tutte le luci, il che farebbe scomparire la piattaforma mentre quella luce è accesa e annullare i modificatori di attrito
- Eccetera...
Qual è il modo migliore per affrontare questo problema quando si utilizza un'architettura componente? I componenti di ciascun oggetto principale sembrano ovvi, così come un modo pulito per definire i loro effetti sull'ambiente. Una classe per "risolvere" l'interazione (sembra che potrebbe diventare rapidamente un casino)? Qualche utilizzo del motivo decorativo per creare oggetti combinati per coloro che interagiscono in un determinato momento? Una struttura di dati che si presta a questo?
Inoltre, connetti l'audio a queste interazioni? Sembra che collegare l'audio al sistema sarebbe come collegare qualsiasi altra proprietà, come la visibilità o il movimento / collisione del giocatore.
Ovviamente con l'aggiunta di più componenti sarebbe bello se esistesse un sistema robusto in grado di gestire quelli nuovi con poche modifiche, ma non ho familiarità con il modo di progettare questo.
Altre informazioni: Il motore che sto usando è un motore XNA chiamato IceCream .