Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Buongiorno ragazzi,
Voglio aprire questo topic per avere alcune delucidazioni su un argomento che sto trattando
in questi giorni.
Prima di partire, vi mostro una screen dell'editor.
http://goo.gl/WHKtWf (scusate per eventuali errori nella skin, ma è ancora da sistemare per le scrollbar )
dalla screen potete notare i due componenti ( PictureBox ) che creano l'animazione.
il metodo è simile ad una gif.
Nel senso che frame per frame viene creata una animazione.
Il riquadro in basso, serve per prendere i vari pezzi per comporre l'animazione.
il riquadro centrale, dovrebbe indicare un Pivot centrale. Dove si posiziona l'immagine.
publicint pic_frame;/* ID della picture di un frame */
}
Questo potrebbe essere un esempio di come potrei fare la struttura.
Ma in precedenza avevo pensato di utilizzare una di questo genere
Codice sorgente - presumibilmente C++
struct _anim
{
publicint frame;
public byte[] image;
}
Nel secondo esempio sarebbe tutto più facile, ma ci sarebbe un dispendio di risorse
e di spazio che occuperebbe un animazione notevole.
di solito, in alcuni casi converto l'immagine in byte[] per renderla disponibile anche su altri computer.
Dichiarando semplicemente Image nella struttura riceverei un errore successivamente.
Non chiedetemi il perché ma ci ho già provato in passato.
forse si basa su un qualcosa temporaneo nel mio computer.
Ma poi quando vado a rilasciare il file e come se non ritrovasse l'immagine.
per questo ho usato il byte[].
oltre a queste due soluzioni cosa mi consigliate di fare?
come potrei tenere sempre centrata un animazioni relativa ad un pivot?
il pivot che si vede nella screen, potrebbe essere relativo ad un oggetto presente nella scena di rendering.
come un ostacolo esempio, un nemico, ecc. ecc.
Questo è il mio dubbio.
Per il comparto animazione non dovrà essere un problema di quantità.
perché al massimo si può eseguire una animazione alla volta e non in contemporanea.
Dovrà essere solo un sistema fluido ed affidabile.
Dimenticavo.
Il pivot è un punto dinamico.
Può cambiare anche posizione durante la riproduzione.
Chiedevo solo se sto percorrendo la strada giusta, o in seguito mi ritrovo un muro d'avanti.
Ultima modifica effettuata da Thejuster il 04/04/2016 alle 12:54
Nel secondo esempio sarebbe tutto più facile, ma ci sarebbe un dispendio di risorse
e di spazio che occuperebbe un animazione notevole.
Esattamente. Usa degli indici (come nel primo esempio).
Non ho ben chiaro cosa intendi per "tenere sempre il pivot centrale", non ho abbastanza esperienza nello sviluppo di RPG nello specifico, ma se il tuo scopo è allineare i frames dell'animazione, dovrai memorizzare, al minimo, un offset verticale e orizzontale. Durante il rendering poi aggiungi l'offset alla posizione del frame.
Se devi gestire anche zoom e rotazioni per motivi di allineamento, invece usa le matrici.
Il pivot come ben sai è un punto di ancoraggio di un immagine.
Può essere scelta dall'utente "Centrale" come può essere scelta "Basso" o "Alto"
Il dubbio a cui mi riferivo era questo.
Ho un Nemico che misura esempio: 190 X 190 e l'utente sceglie di impostare il Pivot alla base dei piedi.
quindi il centro dell'animazione non sarà più la parte centrale del riquadro.
Ma dovrà essere la parte bassa del nemico selezionato.
che ovviamente le dimensioni possono variare, non sono statiche.
Ora se le l'utente le posiziona tutte centralmente, cambiando il pivot in basso le animazioni si spostano dal
centro al basso. Fin qui non ci dovrebbero essere problemi nel farlo.
Ma quando esempio faccio un qualcosa del genere come funziona?
Confermo la mia risposta, memorizza un offset se hai solamente bisogno di spostare la posizione. Se devi supportare zoom e rotazioni, invece codifica l'informazione in una matrice.