Aqui, disponibilizo o código fonte de um jogo da memória feito em JavaFX 2.1. O código foi desenvolvido pelo NetBeans 7.1.1. O arquivo compactado contém todo o código fonte, arquivos e áudio e um arquivo JAR que consiste no jogo pronto para ser executado. Ao clicar no botão ou no link para download, você será direcionado para o Google Drive e todos os arquivos do projeto serão listados. Para fazer efetivamente o download, tecle CTRL+S ou vá no menu 'File' e selecione a opção 'Download' para fazer um único download de todos os arquivos.
Vale lembrar que para compilar o jogo, você precisa do JDK 6 ou superior com o módulo para JavaFX, que pode ser baixado pelo site da Oracle. Se você possui o JDK 7 atualizado, então o JavaFX já está incorporado.
No código deste jogo, vocês verão a criação de formas, aplicação de transformações e efeitos, animação sincronizada com áudio e interação com usuário. Tudo isso já foi descrito nos artigos anteriores, de forma didática.
Este jogo da memória é baseado naquele famoso jogo eletrônico da década de 80 chamado Genius. Nesta implementação, a lógica basicamente é a repetição pelo usuário de uma sequência determinada pelo jogo. A sequência pode ser mais rápida ou mais lenta, até atingir uma sequência de 10, começando sempre com 4.
Durante o jogo, é sempre informado a sequência criada pelo sistema e quando o usuário deve iniciar sua interação. As mensagens são sempre exibidas no centro do círculo e desaparecem após 3ms com efeito de 'fading'.
Ao iniciar o jogo, o botão fica desabilitados até a sua finalização. Todavia, o controle para modificar a velocidade do jogo continua habilitado.
A sequência criada pelo jogo é apresentada ao usuário pela animação de cada quarto de círculo, causando a sensação de que fora ligado/aceso e depois apagado. Aqui foi usado o RadialGradient para produzir o efeito desejado, ou seja, para que mais ou menos no centro de cada forma fosse mais claro e no restante mais escuro. Ainda, para cada cor do círculo existe um som associado, executado de forma síncrona com a animação.
Durante a exibição automática da sequência criada pelo jogo, o usuário não tem como interagir com o sistema (exceto mudando a velocidade do jogo).
Após ser informado pelo jogo, com a mensagem 'Sua vez!', o usuário pode então tentar repetir a sequência criada. Não foi criado um tempo limite (timeout) para início da interação do usuário.
Caso o usuário erre a sequência exibida pelo jogo, um som, uma mensagem e efeito de 'fading' do círculo e da mensagem são executados paralelamente. Após 3ms, o jogo volta ao estado inicial, habilitando o botão inciar, pronto para um novo jogo.
Se o usuário conseguir repetir a sequência de 10, sem errar, o jogo também emite som, exibe mensagem e um efeito de rotação de 360 graus horário. Da mesma forma, após 3ms, o jogo volta ao estado inicial, habilitando o botão inciar, pronto para um novo jogo.
Para finalizar, não posso deixar de referenciar o artigo de João Paulo chamado "Genius em C#". Neste artigo, o autor também disponibiliza o código-fonte do seu jogo, junto com arquivos de áudio. Estes mesmos arquivos de áudio são utilizados neste exemplo em JavaFX.
Nenhum comentário:
Postar um comentário