No XNA, a tecnologia spritefont é horrível. O Nuclex faz o trabalho muito melhor, mas não quero ter referências externas e estou quase terminando o jogo.
Ao usar fontes como Sansation ou Quicksand, parece terrível em tamanhos menores das fontes. Isso é tão ruim!
Existe uma solução alternativa conhecida para isso? Tentei definir o tamanho da fonte para extremamente alto e reduzi-lo no spritebatch sem sorte.
Respostas:
O XNA permite importar uma textura como uma fonte de sprite . Provavelmente, é possível obter melhores dicas e suavização de serrilhado na fonte se você colocar cada caractere manualmente em um bom programa de edição de imagens, em vez de confiar na planilha de sprites que o XNA gera.
fonte
O processador de fontes XNA sprite usa compactação DXT3 que não funciona bem com o novo alfa pré-multiplicado no XNA 4.0. Daí a aparência de blocos do texto.
O processador de fontes Sprite Nuclex produz exatamente os mesmos dados, exceto que o interno
Texture2D
que contém os dados de bitmap da fonte não é compactado - portanto, não há problemas de qualidade.Como os dados do processador Nuclex estão no mesmo formato, o
SpriteFont
leitor XNA pode lê-los e você não precisa incluir nenhuma biblioteca Nuclex para distribuição no seu jogo.(Ele também permite que você use convenientemente o mesmo formato XML que as definições de fonte de sprite nativas do XNA.)
Dito isto: não há nada de errado em agrupar bibliotecas externas com o seu jogo. Não é como se eles fossem instalados no seu sistema ou algo assim. (Você pode ir até o ponto de mesclar as duas assembléias).
E o mesmo vale para o código (se você estiver preocupado com o controle de versão, por exemplo). Você pode simplesmente inserir
Nuclex.Fonts.Content.TrueTypeImporter.dll
seu código-fonte. Na verdade, não é grande coisa.fonte
Você pode usar fontes de pixel :
Quando você usa uma fonte de pixel no tamanho da fonte para a qual ela foi projetada (ou um múltiplo inteiro dela, por exemplo, 2x, 3x, 4x), você garante um texto perfeito em pixel, que não requer anti-aliasing. Isso significa que você nunca precisa lidar com o terrível anti-aliasing que torna as fontes de sprite do XNA tão ruins e o Nuclex muito melhor. ( Este artigo examina esse problema e os compara)
fonte