Já faz um bom tempo que gostaria de fazer esse joguinho, então a oportunidade se fez. Uma nave contra invasores vindos do espaço. Podiam ser amigos, mas aí não teria o cheiro do passado e estaria muito politicamente correto.
Resolvi utilizar recursos simples, então optei por um display matricial 84x48 (NOKIA 5110) e um pequeno joystick com um botão, e o Arduino Due (Cortex-M3) rodando a 84 MHz. Não fiz som, não estava com muita vontade de programar essa funcionalidade, fico devendo. O game não tem final, você nunca morre, pode jogar até não poder mais, vida infinita ... então, não tem game over!
A idéia era usar um RTOS para facilitar a programação e melhorar o seu entendimento. Optei pelo FreeRTOS por ser facilmente empregado no ATmel Studio (minha ferramenta de ensino).
O programa não é uma maravilha, daria para otimizar e melhorar bastante, mas como uma primeira brincadeira está aceitável. Como várias tarefas no FreeRTOS empregam variáveis comuns, utilizei variáveis globais, dentro do escopo das tarefas, para acesso compartilhado, e não empreguei ferramentas de sincronização e acesso exclusivo. Dentro da proposta e desempenho do jogo, foi o suficiente. O legal de utilizar o ATSAM do Due é que ele possui um gerador de números aleatórios muito fácil de utilizar e fundamental para a programação do jogo.
A dificuldade maior foi ajustar a biblioteca básica do LCD para possuir funções gráficas, a função principal é o desenha_pixel( ) e depois a que permite desenhar uma figura (já definida) em qualquer parte do LCD, incluindo qualquer parte da figura. Aproveitei e criei uma função para imprimir o menor tamanho de número possível no LCD, para mostrar a pontuação do jogo. Também, existem muitas outras funções, mas não as utilizei.
Massa Prof.
ResponderExcluirBorges Invaders muito bom kkkkk, Abraço!
Excluir