Quelle est la meilleure façon de dessiner des « boutons » skinnables dans un jeu vidéo ?

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

  •  08-06-2019
  •  | 
  •  

Question

Je cherche des idées sur la façon de dessiner un "bouton" skinnable dans une application de jeu.Si j'utilise une image non vectorielle de sprite fixe pour l'arrière-plan du bouton, je ne peux pas dimensionner le bouton facilement.Si j'écris du code pour dessiner un bouton redimensionnable (comme les boutons Windows sont dessinés), alors le programmeur doit s'impliquer - et cela rend le skinning difficile.Une autre option consiste à diviser le bouton en 9 images plus petites (3x3) et à les étirer toutes - un peu comme les coins arrondis sont réalisés en HTML.

Existe-t-il un autre moyen « plus simple » ?Quelle est la meilleure approche ?

Était-ce utile?

La solution

Si vous voulez vraiment y parvenir, la façon de le faire est d'utiliser les coordonnées de texture.Tout comme vous créeriez une conception de bouton/panneau extensible en HTML avec un tableau, vous définissez simplement les coordonnées UV des coins, de la zone étirable supérieure, de la zone étirable inférieure, des zones étirables latérales, puis du milieu.

Pour un exemple d'implémentation dans un moteur XNA (bien qu'il s'agisse d'un moteur fermé), consultez ceci :http://www.flatredball.com/frb/docs/index.php?title=SpriteFrame_Tutorial

Autres conseils

Oui.Je travaille sur un éditeur.C'est un langage de type XAML (ou de type OpenLaszlo, si vous préférez) pour XNA.Les boutons peuvent donc être redimensionnés par l'éditeur.Les boutons peuvent également être redimensionnés par une feuille de style.

Je suppose que vous avez raison, il est probable que les boutons auront tous la même taille dans un design réel.Mais même dans l'application d'une fenêtre, vous devez parfois élargir un bouton pour accueillir du texte.

Cela devrait être possible avec les shaders.Vous devrez probablement effectuer des recherches de texel, mais cela réduirait le nombre de triangles dans une interface utilisateur complexe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top