Qual è il modo migliore per disegnare "pulsanti" personalizzabili in un videogioco?

StackOverflow https://stackoverflow.com/questions/7017

  •  08-06-2019
  •  | 
  •  

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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top