Tutorial Allegro 5 #6 – Utilizando o Teclado

Olá pessoal! Temos hoje mais um post da série sobre Allegro 5. Desta vez, veremos como manipular as entradas vindas do teclado.

Como vocês verão no código, o tratamento, assim como no mouse, é realizado através da manipulação de eventos. O aplicativo consiste em exibir na tela qual das setas é pressionada. Coisa simples, mas que permitirá verificar como tratar estes eventos vindos do teclado.

Assim como das outras vezes, vamos dar uma olhada no código e comentar sobre o que tem de novo nele.

Bom, visivelmente podemos citar a mudança na estrutura do programa. Desta vez, isolamos todas as tarefas relativas a inicialização do programa em uma função, que retorna um valor booleano. Como estamos fazendo o programa em C, para utilizar o tipo booleano é necessário incluir o arquivo stdbool.h no início. Nas variáveis básicas de nosso programa, não temos nenhuma novidade – apenas o fato de que as declaramos como globais. Ao iniciar o programa, temos a nossa flag indicadora de saída e uma variável inteira chamada tecla que representará qual das setas pressionamos. Em seguida há uma chamada à função de inicialização, onde podemos destacar a inicialização do teclado, através da função al_install_keyboard() e a consequente vinculação dos eventos originados nele à nossa fila, através da função al_register_event_source() recebendo como argumento o retorno da função al_get_keyboard_event_source().

Após as inicializações, iniciamos o looping do nosso programa. Da mesma forma que o aplicativo do mouse (post anterior), verificamos a presença de eventos e, caso existam, fazemos o seu tratamento. Desta vez, estamos relevando os eventos do tipo ALLEGRO_EVENT_KEY_DOWN, que indicam quando o usuário pressionou alguma tecla do teclado. Através do campo keyboard do evento, temos acesso a diversos dados, que possivelmente usaremos em tutoriais futuros. Para este, comparamos o conteúdo de keycode, comparando com as constantes que representam todas as teclas. No caso do exemplo, comparamos somente com as setas, que é o que nos interessa. De acordo com o valor do keycode, atribuímos um determinado valor a essa variável.

Por fim, fazemos uma verificação sobre o conteúdo da variável tecla, para decidirmos o que deve ser escrito na tela. Caso seu valor seja 0, então não há necessidade de atualizar a tela.

O aplicativo rodando fica assim:

Para compilar, precisaremos de alguns add-ons, ficando assim:

  • Windows: -lallegro-5.0.4-mt -lallegro_font-5.0.4-mt -lallegro_ttf-5.0.4-mt -lallegro_image-5.0.4-mt
  • Linux: -lallegro -lallegro_font -lallegro_ttf -lallegro_image

Bem pessoal, é isso. Os dois arquivos utilizados no tutorial (fonte e fundo) podem ser baixados aqui. Como podem perceber, desde que o conceito estrutural da biblioteca Allegro esteja fixado, o aprendizado de novas funcionalidades acaba se tornando natural e bem mais fácil.

Então, até a próxima!

3 comentários sobre “Tutorial Allegro 5 #6 – Utilizando o Teclado

  1. casca-sama disse:

    Olá, amigo, eu utilizei o algoritmo que você mostrou, porém ele só funciona para uma tecla pressionada uma vez, ou seja, se eu segurar a tecla, ele não repete, tem alguma forma de resolver isso?

    Curtir

  2. TIAGO JORDAN disse:

    Pessoal só pra complementar achei importante ressaltar isso no tutorial, aproposito ficou muito bom, obrigado pelo prof: Rafael Toledo um salve!

    Então quem utiliza Windows é necessário colocar os Add-os
    No meu caso Codeblocks v17.12 nas configurações do projeto para que o mesmo compile sem erros

    Build options
    |
    +–Debug -> Linker settings =
    | +–C:CodeBlocksallegro5libliballegro_font-5.0.10-mt-debug.a
    | +–C:CodeBlocksallegro5libliballegro_ttf-5.0.10-static-mt-debug.a
    | +–C:CodeBlocksallegro5libliballegro_image-5.0.10-mt-debug.a|
    |

    +–Release -> Linker settings =
    +–C:CodeBlocksallegro5libliballegro_font-5.0.10-mt.a
    +–C:CodeBlocksallegro5libliballegro_ttf-5.0.10-static-mt.a
    +–C:CodeBlocksallegro5libliballegro_image-5.0.10-mt.a
    Abraços!

    Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.