Qual é a melhor maneira de desenhar “botões” personalizáveis ​​em um videogame?

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

  •  08-06-2019
  •  | 
  •  

Pergunta

Estou procurando ideias sobre como desenhar um "botão" que pode ser modificado em um aplicativo de jogo.Se eu usar uma imagem não vetorial de sprite fixa para o plano de fundo do botão, não poderei dimensionar o botão facilmente.Se eu escrever um código para desenhar um botão redimensionável (como os botões do Windows são desenhados), o programador terá que se envolver - e isso dificultará o skinning.Outra opção é dividir o botão em 9 imagens menores (3x3) e esticá-las todas - como os cantos arredondados são feitos em HTML.

Existe outra maneira "mais fácil"?Qual é a melhor abordagem?

Foi útil?

Solução

Se você realmente deseja fazer isso, a maneira de fazer isso é com coordenadas de textura.Assim como você faria um design de botão/painel extensível em HTML com uma tabela, basta definir as coordenadas UV para os cantos, a área extensível superior, a área extensível inferior, as áreas extensíveis laterais e depois o meio.

Para ver um exemplo disso sendo implementado em um mecanismo XNA (embora seja um mecanismo de código fechado), veja isto:http://www.flatredball.com/frb/docs/index.php?title=SpriteFrame_Tutorial

Outras dicas

Sim.Estou trabalhando em um Editor.É uma linguagem semelhante a XAML (ou semelhante a OpenLaszlo, se preferir) para XNA.Assim os botões podem ser redimensionados pelo editor.Os botões também podem ser redimensionados por uma folha de estilos.

Acho que você está certo ao dizer que é provável que todos os botões tenham o mesmo tamanho em um design real.Mas mesmo em um aplicativo de janela, às vezes é necessário deixar um botão mais largo para acomodar o texto.

Deveria ser possível com shaders.Você provavelmente teria que fazer pesquisas em texel, mas isso reduziria o número de triângulos em uma interface de usuário complexa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top