sábado, 12 de abril de 2008

Alterando a Fonte

Eu sempre achei a fonte padrão da PAlib limitada por não conter acentuação. Hoje eu resolvi mudar essa situação. Passei a tarde toda e parte da noite preparando uma fonte baseada no padrão ISO-8859-1, que é a fonte latina padrão do Windows em português (BR). Procurei colocar todos os caracteres dessa fonte, mas no final eu deixei a última linha em branco, pois eram sinais tipo um C com acento, um A cou um u em cima, sinais que realmente eu nunca usei.

Como usar a fonte nova:
- Ter a fonte em gif, com a cor que quiser e o fundo em magenta. Eu fiz a letra branca pois fica mais fácil de usar os comandos de cores.
- Converter o gif para tiled background usando o PAgfx.
- Usar o comando PA_InitCustomText para definir a fonte customizada como a default do texto.
- Escrever normalmente.

O único comando para alterar a cor do texto que funciona é o PA_SetTextCol. Os outros comandos deixam as letras pretas.

Arquivo gif com a fonte:


Fonte do programa:
// Includes
#include <pa9.h> // Include for PA_Lib

#include "gfx/all_gfx.h"
#include "gfx/all_gfx.c"
// Function: main()
int main(int argc, char ** argv)
{
  PA_Init(); // Initializes PA_Lib
  PA_InitVBL(); // Initializes a standard VBL

  PA_InitText(0, 0);
  PA_InitCustomText(1,0,fonte3);
  PA_OutputSimpleText(1,2,2,"texto com acentuação");
  PA_OutputSimpleText(1,0,3,"áéíóúàãõâêôüç ÁÉÍÓÚÀÃÕÂÊÔÜÇ");

// Infinite loop to keep the program running
  while (1)
  {
    if (Pad.Newpress.Up) { PA_SetTextCol(1, 0, 0, 31); }
    if (Pad.Newpress.Down) { PA_SetTextCol(1, 0, 31, 0); }
    if (Pad.Newpress.Left) { PA_SetTextCol(1, 31, 0, 0); }
    if (Pad.Newpress.Right) { PA_SetTextCol(1, 31, 31, 31); }
    PA_WaitForVBL();
  }

  return 0;
} // End of main()


Alguns avisos:
- Eu realmente desisti do jogo de tanque. Eu não estava contente com o jogo e estava apenas me estressando. Eu gosto de programar jogos de raciocínio. Jogos de ação não são minha praia.
- Eu estou começando a projetar um jogo que vai misturar adventure point&click (tipo os da Lucas Arts) com aqueles adventures puro texto (tipo os da Infocom). Por isso que precisava de uma fonte acentuada.
- Quem tentar instalar a PAlib 080203 (beta) no DevKitPro vai ter problemas na compilação, é necessário imcluir uma variável de ambiente chamada papath apontando para onde está a PAlib (usando / ao invés de \). Como fazer isso:
1) Clique com o botão direito em "Meu Computador" e clique em propriedades.
2) Vá na aba "Avançado" e clique no botão "Variáveis de Ambiente".
3) Em "Variáveis do Sistema", clique no botão "Nova".
4) Em "Nome da Variável", escreva papath
5) Em "Valor da Variável", escreva c:/devkitpro/palib
6) Vá clicando em "OK" até fechar todas as janelas.
No passo 5, é importante colocar o caminho para onde está a palib. Se for diferente do que eu postei, tem que ser o caminho do seu HD até chegar na palib.

7 comentários:

Anônimo disse...

Boa tarde...
Você sabe como faço para usar o netBeans como IDE para o PALib ou o Visual C++.
}
Abraços

Guilherme - Homebrew Maker disse...

Bah, André. Infelizmente eu não sei. Nunca usei o netBeans.

Anônimo disse...

Olá Guilherme, não consigo compilar nada, dá um erro 1 e erro 2, você sabe onde existe alguma informação sobre esses códigos de erro?
Estou iniciando em programação para o DS e estou penando por falta de documentação.

Obrigado

Unknown disse...

opa


não vai continuar a série de artigos?

se precisa de instimulo, põe anuncios ai que eu aposto que nós sempre estaremos aqui para clicar...

tudo para continuar as aulas...

Pedro Loures disse...

Guilherme, poderia me mandar um email pro lokigrants@hotmail.com ? estou com umas dúvidas e o projeto que planejo fazer de Homebrew não é um jogo, mas é complicado também. Obrigado,
Pedro

Thif Argus Steam disse...

Cara, valeu mesmo pela fonte, me poupou um trabalhão. tembém to pesquisando pro desenvolvimento de homebrews, se quiser uma mão em alguma coisa, mail-me.

Anônimo disse...

Hello there I am so grateful I found your
site, I really found you by error, while I was
researching on Yahoo for something else, Nonetheless I am
here now and would just like to say thanks
a lot for a marvelous post and a all round interesting blog (I
also love the theme/design), I don’t have time to look over it all at the moment but I have bookmarked it and also added your RSS feeds, so when
I have time I will be back to read a lot more, Please do keep up the great jo.
Feel free to visit my weblog : colonias