Computação Gráfica
Trabalho I - 2018/2

INTRODUÇÃO
Este primeiro trabalho prático da disciplina de Computação Gráfica, que deverá ser feito em dupla ou individualmente, consiste em desenvolver um jogo, semelhante ao Space Invaders, usando OpenGL.

Neste jogo o usuário deverá manipular um Disparador de Tiros com o objetivo de eliminar Naves Inimigas que caem do céu e podem destruí-lo.
Além disso, também caem do céu Vitaminas que podem lhe dar vidas extras. Quando o jogo começa o usuário tem três "vidas", de maneira que se o disparador for atingido por uma
nave inimiga, o jogo ainda pode continuar. Um exemplo do cenário do jogo é apresentado na figura a seguir.

Figura -  Exemplo de Cenário do Jogo

DETALHAMENTO

O Disparador deve ser manipulado pelo usuário com as setas para esquerda e para direita, mas ele não pode passar dos limites laterais da janela.
Além de movimentar o disparador, deve ser possível atirar cada vez que o usuário pressionar a tecla ESPAÇO.

É necessário que haja, no mínimo, quatro modelos distintos de Naves, e um modelo de Vitamina. Os modelos devem ser armazenados apenas uma vez, e instanciados várias vezes. A descrição de cada modelo deve ser lidas de arquivos, no formato descrito aqui.

As Naves e as vitaminas deverão cair aleatoriamente no espaço da janela, cada um com uma velocidade diferente.
Quando um tiro atinge uma Nave, ela desaparece da tela e não retrona ao jogo. Se
uma Nave chega ao chão, sem ser destruída, esta retorna ao topo da janela e recomeça seu movimento, em uma posição horizontal aleatória.

Quando o Disparador colide com uma Vitamina, é acrescentada uma vida ao jogador, até o máximo de 3, e vitamina retorna ao topo da janela, em uma posição horizontal aleatória.

Devem existir, pelo menos, 8 objetos e 3 vitaminas em cada jogada.

O jogo termina quando todos as Naves forem destruídas, ou quando as vidas do jogador acabarem.
Se o jogador conseguir destruir todas as Naves, uma mensagem avisando que ele ganhou o jogo deve ser exibida e a execução do programa é encerrada.

Para calcular a intersecção do tiro com os objetos e dos objetos e vitaminas com o disparador, pode ser usado o envelope de cada um (x e y mínimo e máximo).

Deve ser possível sair do jogo a qualquer momento pressionando a tecla ESC.

Modelos de Objetos
Os modelos das Naves e das Vitaminas são de livre escolha, desde que sejam formados por objetos compostos por um conjunto de quadrados coloridos. A descrição destes objetos deve ser feita por meio de arquivos texto, conforme o formato a seguir.

#CORES
4
1 0 0 0  (definição da cor 1 - PRETO)
2 255 0 0 
(definição da cor 2 - VERMELHO)
3 0 255 0  (definição da cor 3 - VERDE)
4 255 255 255  (definição da cor 4 - BRANCO)

#OBJETO
5 4  (número de linhas e colunas do objeto)
1 1 1 1
1 3 3 1
1 3 3 1
2 2 2 2
1 1 1 1

A figura a seguir apresenta alguns exemplos de Naves Inimigas. Clique sobre a imagem para ver em tamanho maior.


Figura -  Exemplos de Naves Inimigas

Entrega
FIM.