Ho una domanda non necessariamente specifica per qualsiasi piattaforma o API ma più specifica per le interazioni nel codice tra animazioni.Animazione e logica
Un gioco è un buon esempio. Diciamo che il giocatore muore e c'è un'animazione di morte che deve finire prima che l'oggetto venga rimosso. Questo è tipico in molti casi in cui alcune animazioni devono finire prima di continuare con qualsiasi azione che normalmente seguirà. Come faresti a fare questo?
La mia domanda riguarda il controllo e la logica dell'animazione. Come progetteresti un sistema in grado di guidare l'animazione ma allo stesso tempo implementare un comportamento personalizzato?
Il problema che si verifica in genere è che la logica di gioco e i dati di animazione diventano codipendenti. Cioè, l'animazione deve richiamare il codice o in qualche modo contenere metadati per la durata delle sequenze di animazione. Quello che in genere è ancora più un problema, è quando un'animazione, che deve attivare qualche altro codice, dire dopo la 1.13s genera uno sprite personalizzato, questo tende a provocare una nidificazione profonda di codice e animazione. Una bomba con un timer sarebbe un esempio sia di logica che di animazione in cui entrambe le cose interagiscono, ma voglio mantenerle il più separate possibile.
Ma cosa faresti per mantenere l'animazione e codificare due cose separate?
Recentemente ho provato mgrammar e, sto pensando, una DSL potrebbe essere la strada da percorrere. Ciò consentirebbe all'animazione o all'animatore di esprimere certe cose in un modo presumibilmente sicuro che andrebbe poi nella pipeline dei contenuti ...
Vorrei rispondere a questa domanda, ma sto avendo difficoltà a capire ciò che si vuole separare - fare si vuole separare il codice per la logica generale del gioco e il codice per rendere graficamente il gioco? L'animazione – CiscoIPPhone
è guidata da qualcosa, ma le animazioni sono complesse, a un certo punto devono essere richiamate nel codice. A voler minimizzare questo e disaccoppiare il più possibile per capire se c'è un set minimo di funzionalità che è necessario farlo funzionare. –