A animação do braço
como foi feita a animação do braço mecânico
   

O código do Alien é extremamente simples: um contador cuja faixa vai de 0 a 700, definido como a barra de vida do bichinho, determina todos os acontecimentos importantes do jogo e que não dependem da interferência do usuário.

Assim, a cada estágio da vida, uma animação é acionada. Este contador está funcionando num TTimer que foi ajustado para produzir um evento a cada 2,5 segundos aproximadamente.

As animações são procedimentos fechados, ou seja, elas possuem um código próprio que as produz e esse código está contido numa única procedure. Com isso o que temos é que, ao ser acionada, a animação suspende os eventos e controles até que termine o processamento.

Este recurso permite um movimento bem mais suave e sem aquela irritante "quicada" do elemento. Em contrapartida, a animação bloqueia todo o resto do programa enquanto ela está se desenvolvendo.

Isto funciona bem em casos como este do Alien, onde as animações são exporádicas e no momento em que ocorrem o usuário naturalmente irá prestar atenção nela e não nos demais recursos e funções do sistema.

Este tipo de animação usa muito a função sleep(x) para produzir pequenas pausas no processamento do programa. Além disso, ela se baseia na montagem geral da imagem, numa TImage, que depois é imediatamente transmitida para a tela (função Repaint).

Coloquei nesta página, à disposição dos interessados, um exemplo do braço mecânico trazendo o ovo, onde foi usada a mesma técnica de construção da imagem, porém a animação foi inserida num TTimer. Ele ilustra bem como esse tipo de construção acarreta pequenos saltos na imagem, devido ao funcionamento interno do Delphi e do Windows.

Nesta construção não foi preciso usar o Direct-X para os sons, mas isso exige que o arquivo wav correspondente esteja presente no diretório.

Como não há nada de extraordinário com o código do Alien, não iremos comentar aqui nenhum trecho. Basta carregar o fonte no Delphi e analisar como cada componente funciona. Se tiver dúvida, pode perguntar via e-mail.

Clique aqui para baixar o fonte completo e aqui para um fonte alternativo.

 
online