Qual è il modo migliore per disegnare "pulsanti" personalizzabili in un videogioco?
Domanda
Sto cercando idee su come disegnare un "pulsante" personalizzabile in un'applicazione di gioco.Se utilizzo un'immagine non vettoriale sprite fissa per lo sfondo del pulsante, non riesco a ridimensionare facilmente il pulsante.Se scrivo codice per disegnare un pulsante ridimensionabile (come vengono disegnati i pulsanti di Windows), allora il programmatore deve essere coinvolto e questo rende difficile lo skinning.Un'altra opzione è quella di suddividere il pulsante in 9 immagini più piccole (3x3) e allungarle tutte, un po' come si fa con gli angoli arrotondati in HTML.
Esiste un altro modo "più semplice"?Qual è l'approccio migliore?
Soluzione
Se vuoi davvero ottenere questo risultato, il modo per farlo è con le coordinate della trama.Proprio come faresti con la progettazione di un pulsante/pannello estensibile in HTML con una tabella, definisci semplicemente le coordinate UV per gli angoli, l'area estensibile superiore, l'area estensibile inferiore, le aree estensibili laterali e quindi la parte centrale.
Per un esempio di questa implementazione in un motore XNA (sebbene sia un motore closed source), guarda questo:http://www.flatredball.com/frb/docs/index.php?title=SpriteFrame_Tutorial
Altri suggerimenti
SÌ.Sto lavorando su un editor.È un linguaggio simile a XAML (o simile a OpenLaszlo, se preferisci) per XNA.Quindi i pulsanti possono essere ridimensionati dall'editor.I pulsanti potrebbero anche essere ridimensionati da un foglio di stile.
Immagino che tu abbia ragione nel dire che è probabile che i pulsanti abbiano tutti la stessa dimensione in un progetto reale.Ma anche nell'app di una finestra, a volte è necessario allargare un pulsante per accogliere il testo.
Dovrebbe essere possibile con gli shader.Probabilmente dovresti eseguire ricerche texel, ma ridurrebbe il numero di triangoli in un'interfaccia utente complessa.