Computação Gráfica

Trabalho II


Batalha de Robôs   

Objetivo

   Criar um jogo em que o usuário controla um robô que dispara tiros em robôs inimigos. O jogo se passa em um terreno plano que contém obstáculos em forma de paralelepípedos. 


Requsitos do Trabalho

Terreno    

    O terreno é descrito por um arquivo texto, conforme especificação abaixo.
   
Sobre o terreno existem paralelepípedos que representam obstáculos aos movimentos do jogador e dos robôs inimigos. O programa deve suportar até 20 obstáculos.
    O terreno deve ser visualizado tanto em primeira quanto em terceira pessoa. A troca entre estes modos de visualização deve ser feita com uma tecla. O programa deve iniciar com a visualização em terceira pessoa. 
    O centro do terreno deve estar na posição (0,0,0).

Exemplo de Terreno

#DIMENSAO
100 100 // largura e profundidade
#JOGADOR
50 0 // posicao inicial do jogador
#OBSTACULOS 2
-20 -20 10 15 12 //centro do obstáculo, altura, largura, profundidade
20 20 5 30 1 //centro do obstáculo, altura, largura, profundidade
#INIMIGOS 4
30 30 255 0 255// posição do inimigo 1, COR(R,G,B)
20 -30 0 128 128 // posição do inimigo 2, COR(R,G,B)
-40 20 128 0 128 // posição do inimigo 3, COR(R,G,B)
-20 -20 255 255 0 // posição do inimigo 4, COR(R,G,B)

Robô do Jogador

    O jogador deve ser representado por um robô com um canhão. Este robô deve ser formado por pelo menos 10 paralelepípedos e deve ter o aspecto visual de um tanque ou de um robô humanóide.
    O usuário pode girar seu robô para frente ou para trás com as teclas de seta LEFT/RIGHT.
    O usuário pode mover seu robô para frente ou para trás com as teclas de seta UP/DOWN.
    O canhão fica apontado sempre na direção para onde o robô do jogador está olhando e pode ser elevado ou baixado com as teclas PAGE UP/PAGE DOWN.
    O robô do jogador não pode atravessar os obstáculos. Se houver colisão com os inimigos, o jogo deve ser encerrado.

Tiros

    Os tiros devem ser disparados pela tecla ESPAÇO. A força do tiro pode ser alterada pelas teclas MAIS e MENOS.
    Visualmente os tiros deve ser representados por esferas.
    O movimento do tiro pode ser traçado de duas formas:
            - através das leis do movimento de projéteis;
            - através de curvas Bezier ou Hermite.
    Ao atingirem um obstáculo ou o solo, o jogador perde a munição.
    Ao atingirem um inimigo, o jogador ganha um ponto e o robô atingido desaparece.

Inimigos

    O jogo deve suportar até 20 inimigos.
    Os robôs inimigos devem ser formados por pelo menos 10 paralelepípedos e devem ter o aspecto visual de um carro.
    Cada inimigo deve ter uma cor diferente.
    Os robôs inimigos andam de forma aleatória, sempre para frente, girando, de vez em quando. O giro deve ser de 45 graus à cada vez. 
    Ao colidirem entre si ou com os obstáculos, devem mudar de direção. Esta mudança também 
deve ser de 90 graus à cada vez. 



Data da Entrega

    Todos os trabalhos deverão ser entregues atrávés do Moodle até às 17h30 do dia 07/12/2009.

    A partir deste horário, os trabalhos terão um desconto conforme a seguinte tabela:

        Até 08/12/2009 às 17h30 - 3.0 pontos

        Até 09/11/2009 às 17h30 - 4.0 pontos

        A partir de 09/11/2009 às 17h30 - NÃO É MAIS ACEITA A ENTREGA.