Adailton Silva - Lucas Luciano - Murilo Souza - Vinicius Augusto.
Don't wanna be here? Send us removal request.
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
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
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
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
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
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
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
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
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
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
Text
A Animação
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
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
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
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