engcompveris-blog
TCD - Algorítimos e Programação de Computadores
15 posts
Adailton Silva - Lucas Luciano - Murilo Souza - Vinicius Augusto.
Don't wanna be here? Send us removal request.
engcompveris-blog · 12 years ago
Video
youtube
Vídeo descritivo do projeto
0 notes
engcompveris-blog · 12 years ago
Text
Download TCD2 - Final
LINKS PARA DOWNLOAD DO JOGO :
LINK 1 - Dropbox 
LINK 2 - 4Shared
Download da apresentação de slides:
LINK - 4shared
2 notes · View notes
engcompveris-blog · 12 years ago
Text
O Código.
Nestes links você pode acessar todos os códigos comentados por blocos de linhas:
x_falcon.cpp: LINK
funcoes.h: LINK
modscore.h: LINK
2 notes · View notes
engcompveris-blog · 12 years ago
Text
Imagens
Tela inicial: Nesta, o jogador apertará a tecla ENTER para acessar o Menu principal do jogo.
Fundo do Menu: Imagem que serve como plano de fundo para o menu principal.
Tela de instruções: Ao clicar no submenu "Instruções", o jogador verá a tela com os comandos necessários para controlar o jogo.
0 notes
engcompveris-blog · 12 years ago
Text
Download - TCD2 (parcial)
O download do executável e .cpp com a interface básica do jogo pode ser feito por aqui:
Download
0 notes
engcompveris-blog · 12 years ago
Text
Código de interface:
#include <allegro.h>
int main(){
    int x=400, y1=0,y2=-600,f;
allegro_init();
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0);
BITMAP * buffer= create_bitmap(800,600);
install_keyboard();
BITMAP *fundo=load_bitmap("fundo.bmp", NULL);
BITMAP *falcon=load_bitmap("falcon.bmp", NULL);
BITMAP *aster=load_bitmap("asteroide.bmp", NULL);
BITMAP *explode=load_bitmap("explosao.bmp", NULL);
BITMAP *nave=load_bitmap("nave.bmp", NULL);
BITMAP *tiro=load_bitmap("tiro.bmp", NULL);
BITMAP *vida=load_bitmap("vida.bmp", NULL);
while (!key[KEY_ESC]){
               clear(buffer);
                               draw_sprite(buffer,fundo,0,y1=y1+1);
                               if(y1==601){
                        y1=-599;
                        draw_sprite(buffer,fundo,0,y1=y1+1);
                        f=1;
                        }
               if(y1>=1){
                         f=1;
                         }
               if(f==1){
                        draw_sprite(buffer,fundo,0,y2=y2+1);
                        if(y2==600){
                                  y2=-599;
                                  }
                        }
                                        draw_sprite(buffer,aster,200,100);
               draw_sprite(buffer,aster,625,400);
               draw_sprite(buffer,aster,700,50);
               draw_sprite(buffer,aster,50,250);
               draw_sprite(buffer,nave,300,200);
               draw_sprite(buffer,explode,400,300);
               draw_sprite(buffer,tiro,432,400);
               draw_sprite(buffer,vida,0,560);
               draw_sprite(buffer,vida,40,560);
               draw_sprite(buffer,vida,80,560);
                               if(key[KEY_RIGHT]){
               draw_sprite(buffer,falcon,x=x+1,450);
               }
                               if(key[KEY_LEFT]){
                                                 draw_sprite(buffer,falcon,x=x-1,450);
                               }
                               if(x==0){
                        x=1;
                          draw_sprite(buffer,falcon,x,450);
                        }
               if(x==723){
                          x=722;
                          draw_sprite(buffer,falcon,x,450);
                          }
                                          draw_sprite(buffer,falcon,x,450);
                               draw_sprite(screen,buffer,0,0);
}
}
END_OF_MAIN();
4 notes · View notes
engcompveris-blog · 12 years ago
Text
Sprites:
  X-Falcon: A nave do piloto, será controlada pelo jogador.
 Asteróides: Indestrutíveis, ficam no caminho do jogador, forçando-o a ficar em constante movimento.
 Fighter Gorn: Inimigo básico. Mover-se-á pela tela, em direção ao jogador Devem ser destruídos para acúmulo de pontos.
 Laser: Projétil Laser a ser disparado pelo jogador.
 Coração: O jogador poderá sofrer 3 golpes. A cada dano recebido, perde-se um coração.
 Explosão: quando uma nave inimiga for destruída, ocorrerá uma explosão.
 Vida do chefe: Cada unidade desse sprite mostra uma vida do chefe, quando todos desaparecerem, o chefe será derrotado.
 Tiro do chefe: Esse sprite representa o projétil disparado pelo chefe.
King Gorn: Esse é o chefe de fase, o jogador tem que descobrir seu ponto fraco para conseguir causar dano a sua barra de vida.
Nota: O fundo rosa das imagens deve-se ao fato de que em sua aplicação, o rosa (255,0,255) torna-se uma transparência.
1 note · View note
engcompveris-blog · 12 years ago
Text
Premiações e penalidades:
Ao derrotar as naves inimigas, o jogador acumulará pontos. Cada nave inimiga corresponde a uma quantidade de pontos a ser recebido pelo jogador que conseguir derrotá-la.
Quanto às penalidades, o jogador ao receber dano, perderá força nos escudos da espaçonave. Ao ser atacado três vezes, a nave será destruída.
1 note · View note
engcompveris-blog · 12 years ago
Audio
Músicas:
Buscando inspiração em jogos clássicos, será utilizada a música do estágio Storm Eagle, do jogo Mega Man X para o SNES (16bits). Os sons utilizados seguirão o mesmo padrão, com inspiração em jogos antigos da era 8 ou 16 bits.
0 notes
engcompveris-blog · 12 years ago
Text
Cenário
O jogo se passa no espaço, portanto o cenário será um fundo preto estrelado, que funcione em loop para dar a impressão de avanço e movimento do jogador.
0 notes
engcompveris-blog · 12 years ago
Text
Jogo: X-Falcon
História
Após perder comunicação com um satélite de mineração, a Frota Estelar envia o engenheiro Falcon em sua espaçonave para investigar as causas do misterioso ocorrido. Ele é recebido por fogo inimigo, e cabe ao jogador controlar sua espaçonave para sobreviver ao ataque alienígena.
Objetivo:
O objetivo do jogo é abater os inimigos conforme aparecem na tela, evitando sofrer dano pelos mesmos. Outra preocupação envolvida é a de desviar dos indestrutíveis asteroides que vagam pelo espaço. No final do estágio, o jogador tem que derrotar um chefe de fase.
Personagens:
Falcon: Ele é um engenheiro da Frota Estelar e o responsável por atender chamados de emergência de importantes bases do setor de mineração. Pilota a espaçonave conhecida como X-Falcon, nomeada em sua homenagem.
Gorns: Raça alienígena conquistadora, que ao chegar ao planeta Bespin, destrói um satélite fundamental para as atividades da federação terrestre.
0 notes
engcompveris-blog · 12 years ago
Text
A Animação
Tumblr media
Ao iniciar o programa, o usuário verá a interface principal da animação, onde o avião está em constante movimento. Quando a tecla espaço é pressionada, o tanque dispara um projétil que viaja em linha reta, na diagonal. Caso ocorra a colisão do projétil com o avião, este inicia o movimento de queda, e a animação é reiniciada. O programa será executado enquanto o usuário não pressionar a tecla ESC.
0 notes
engcompveris-blog · 12 years ago
Text
Download - TCD1
Nestes links, podem ser executados os downloads das partes fundamentais do projeto:
Apresentação de slides:
Download
Software - TCD1 Final:
Download
0 notes
engcompveris-blog · 13 years ago
Text
O Código:
Abaixo pode ser visto o código completo e explicativo desenvolvido para o TCD.:
#include <allegro.h> #include <stdio.h> #include <stdlib.h> int main(){
//Carregamento das variáveis.     int x1=0, y1, x2=53, y2=390, atirou=0, colidiu=0,      dir=1,explodindo=0,x3=100,y3=20,qtd_num=100000;
//Inicialização do Allegro allegro_init(); set_color_depth(32);
//Criação da janela para a exibição gráfica do programa.                 set_gfx_mode(GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0);
//Criação do buffer, que é a base para a animação.                                 BITMAP * buffer= create_bitmap(800,600);
//Instalação do teclado para o reconhecimento do mesmo no programa.  install_keyboard();
//Instalação do som para a execução do mesmo no programa.                install_sound(DIGI_AUTODETECT,MIDI_AUTODETECT,NULL);
//Carregamento das imagens a serem trabalhadas durante a execução do programa.                 BITMAP *aviao=load_bitmap("aviao.bmp", NULL); BITMAP *aviao1=load_bitmap("aviao1.bmp", NULL); BITMAP *cenario=load_bitmap("cenario.bmp", NULL); BITMAP *tanque=load_bitmap("tanque.bmp", NULL); BITMAP *bala=load_bitmap("bala.bmp", NULL); BITMAP *explosao=load_bitmap("explosao.bmp", NULL);
//Carregamento dos sons a serem trabalhados durante a execução do programa.    SAMPLE *som_explode = load_wav("explode.wav"); SAMPLE *som_aviao = load_wav("aviao.wav"); SAMPLE *som_tiro = load_wav("tiro.wav");
//Execução do som do avião, em loop.    srand(time(NULL)); play_sample (som_aviao, 255, 128, 1000, 1);                      
//Randomização da altura que o avião irá cruzar a tela.
                 y1=rand() % 150;
//Início da animação, que funcionará em um loop. Este loop rodará até a tecla esc ser pressionada pelo usuário.                            while (!key[KEY_ESC]) {      
//Limpa o buffer de todo o conteúdo.                 clear(buffer);
//Desenha no buffer, o cenário na posição 0,0 da tela. (O cenário é fixo).          
              draw_sprite(buffer,cenario,0,0);   
//Desenha no buffer, o tanque na posição 0,400 da tela. (O tanque é fixo).                          draw_sprite(buffer,tanque,0,400);                 //Espera 300 milésimos de segundo, depois passa a tocar o som do avião voando, e ativa a 'dir'(direção) 1 do avião novamente.                              if(dir==2){                _sleep(300);                play_sample (som_aviao, 255, 128, 1000, 1);                dir=1;                }               
//Comando de tiro: Se a tecla espaço for pressionada, a variável flag 'atirou' passa a valer 1.                          if(key[KEY_SPACE] && atirou==0){                atirou=1;                }               
//Se o y da bala for menor que -25, a variável flag 'atirou' volta a valer 0 e a posição da bala é reiniciada.                if(y2<-25){                atirou=0;                x2=53;                y2=390;                }               
//Se a variável 'atirou' valer 1, é desenhada a bala na posição x2,y2.
//O deslocamento da bala é realizado através dos contadores x2=x2+2 e y2=y2-2.
//Estes contadores mudam os valores das coordenadas em que a bala será gravada no buffer.                if(atirou==1){                draw_sprite(buffer,bala,x2=x2+2,y2=y2-2);                }
//Quando as coordenadas da bala passarem por 55,388, é tocado o som do tiro.                           if(x2==55&&y2==388){                play_sample (som_tiro, 255, 128, 1000, 0);                }               
//Colisão.
//Este trecho estabelece a condição de: 
//Se x e y da bala estiverem entre o intervalo de espaço ocupado pela imagem do avião:                    if(x2>x1 && x2<x1+94 && y2>y1 && y2<y1+71){
//A flag 'colidiu' passará a valer 1.                colidiu=1;              
//Interromperá a execução do som do tiro e do avião.                stop_sample(som_tiro);                stop_sample (som_aviao);              
//Iniciará a execução do som de explosão.                play_sample (som_explode, 255, 128, 1000, 0);           
//Reiciará o valor da variável 'atirou' para 0.                atirou=0;    
//y da bala passará a ser -15.                y2=-15;                }             
//Se o y1 for maior ou igual a 355:                                                              if(y1>=355){             
//Inicia a execução do som de explosão.                play_sample (som_explode, 255, 128, 1000, 0);         
//Variável flag 'dir' passa a valer 0.                dir=0;          
//Variável flag 'colidiu' passa a valer 0.                colidiu=0;
//x e y da explosão são declarados como x e y do avião.                x3=x1;                y3=y1;
//x do avião é declarado como -200 (fora da tela).                x1=-200;
//y do avião é randomizado, variando até 150.                y1=rand() % 150; 
//Desenha a explosão nas coordenadas x3 e y3, no buffer.                draw_sprite(buffer,explosao,x3,y3);           
//Variável flag 'dir'(direção) passa a valer 2.                dir=2;                } 
//Se a variável flag 'colidiu' estiver valendo 1:                if(colidiu==1){
//Variável flag 'dir' é reiniciada para 0.                dir=0;
//No buffer, é desenhado o avião inclinado, nas coordenadas x1 e y1.
//Estas coordenadas variam de acordo com os contadores x1=x1+2 e y1=y1+3.                draw_sprite(buffer,aviao1,x1=x1+2,y1=y1+3);                }   
//Se a variável flag 'dir' valer 1:                           if(dir==1){
//Desenha no buffer, o avião na posição x1.
//Posição que varia de acordo com o contador x1++                draw_sprite(buffer,aviao, x1++,y1);          
//Se x1 for maior que 800, ou seja, se o avião estiver fora da tela.                    if(x1>800){
//y do avião é randomizado, com um valor até 150.                                              y1=rand() % 150;                    }                }      
//Cola o conteúdo desenhado no buffer, na tela gráfica, que é visualizada pelo usuário.                                                 draw_sprite(screen,buffer,0,0);
//Se x do avião for igual a 1500, o avião é reiniciao para a posição x=-200                          if (x1==1500){                x1 =-200;                }           } }
//Encerra o programa. END_OF_MAIN()
1 note · View note
engcompveris-blog · 13 years ago
Text
Avaliação Mensal 1 - Avião x Projétil
Avião x Projétil
Nosso projeto visa as aplicações dos conhecimentos adquiridos em C padrão e biblioteca Allegro, em uma animação simples mas que utilize todas as funções e recursos estudados.                                                                                                 
                                                                  A animação consiste em um móvel, que enquanto voa, é atingido por um projétil que altera sua direção, fazendo-o cair. A idéia básica do projeto pode ser visualizada na interface programada pelos integrantes do grupo, usando o Allegro:
0 notes