se tiver algum comentário eu explico, caso necessário.
#include
BITMAP *buffer;
BITMAP *cenario;
BITMAP *menu;
BITMAP *lata;
BITMAP *lata1;
BITMAP *lata2;
BITMAP *lata3;
BITMAP *papel;
BITMAP *papel1;
BITMAP *papel2;
BITMAP *papel3;
BITMAP *vidro;
BITMAP *vidro1;
BITMAP *vidro2;
BITMAP *vidro3;
BITMAP *seta;
SAMPLE *ponto = NULL;
MIDI *comeco = NULL;
//varaveis globais...
int a=0, b=6, c=0, MudarImagem, ponto_lata=0, ponto_papel=0, ponto_vidro=0;
int lixo1=1, lixo2=1, lixo3=1, lixo4=1, pap=1, pap1=1, pap2=1, pap3=1, vid=1, vid1=1, vid2=1, vid3=1;
int x=585, y=585, i=0;
bool frase_inicialH, frase_inicialM,musica_on=true;
// strutura para o personagem...
struct personagens{
char nome;
int coluna, linha;
BITMAP *perso[38];
};
//declarando a variavel do tipo personagem...
personagens personagem;
//Funcoes...
void init();
void deinit();
void carregando_imgs();
void Mensagens();
void relogio();
void escolha_de_personagens();
void direcionando_imgs();
void movimentando_personagem();
void Carregando_as_imagens_do_lixo();
void colisoes();
void Movimento_do_cenario();
//comeco da funcao principal INT MAIN...
int main() {
init();
Carregando_as_imagens_do_lixo();
allegro_message("Bem Vindo(a) ao CSR.\nPara sair do jogo Pressione a tecla ESC.\n\t BOM JOGO!!!");
enable_hardware_cursor();
show_os_cursor(2);
//carregando Menu
while ((!key[KEY_H]) && (!key[KEY_M])){
escolha_de_personagens();
if (key[KEY_H]){
personagem.nome ='H';
frase_inicialH=true;
frase_inicialM=false;
}
else{
personagem.nome = 'M';
frase_inicialM=true;
frase_inicialH=false;
}
}
direcionando_imgs();
//onde o jogo acontece...
while (!key[KEY_ESC]) {
if(musica_on==true){
musica_on=false;
play_midi(comeco, TRUE);
} //chamando as funcoes...
Movimento_do_cenario();
carregando_imgs();
Mensagens();install_int_ex (relogio, SECS_TO_TIMER(1));
install_int_ex(movimentando_personagem, MSEC_TO_TIMER(100));
colisoes();
if (b<0){
allegro_message ("VOCE PERDEU, TENTE NOVAMENTE!");
return 0;
}
if (y==701)
return(0);
}
deinit();
return 0;
}
END_OF_MAIN()
//Funções
void init() {
int depth, res;
allegro_init();
depth = desktop_color_depth();
if (depth == 0) depth = 32;
set_color_depth(depth);
res = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
if (res != 0) {
allegro_message(allegro_error);
exit(-1);
}
install_sound (DIGI_AUTODETECT, MIDI_AUTODETECT, NULL);
install_timer();
install_keyboard();
install_mouse();
buffer = create_bitmap(640,480);
cenario = load_bitmap("Cenario.bmp", NULL);
menu = load_bitmap("menu.bmp", NULL);
ponto = load_sample ("pontuando.wav");
comeco = load_midi("inicio.mid");
}
void deinit() {
clear_keybuf();
destroy_bitmap(cenario);
destroy_bitmap(menu);
destroy_bitmap(lata);
destroy_bitmap(lata1);
destroy_bitmap(lata2);
destroy_bitmap(lata3);
destroy_bitmap(papel);
destroy_bitmap(papel1);
destroy_bitmap(papel2);
destroy_bitmap(papel3);
destroy_bitmap(vidro);
destroy_bitmap(vidro1);
destroy_bitmap(vidro2);
destroy_bitmap(vidro3);
}
void escolha_de_personagens(){
textprintf_ex(menu, font, 69,327, makecol32(110,110,110), -1, "TECLE 'H' PARA JOGAR COM O HOMEM ou 'M' PARA JOGAR COM A MULHER");
draw_sprite(buffer, menu, 0,0);
draw_sprite (screen, buffer, 0,0);
}
void carregando_imgs(){
draw_sprite (buffer, cenario, 1,1);
if (x!=700){
draw_sprite (buffer, lata, 280,282);
draw_sprite (buffer, lata1, 465,281);
draw_sprite (buffer, lata2, 525,280);
draw_sprite (buffer, lata3, 500,400);
draw_sprite (buffer, papel, 350,380);
draw_sprite (buffer, papel1, 210,312);
draw_sprite (buffer, papel2, 70,412);
draw_sprite (buffer, papel3, 25,280);
draw_sprite (buffer, vidro, 45,350);
draw_sprite (buffer, vidro, 50,360);
}
if (x==700){
if (i==0){
i++;
destroy_bitmap(lata);
destroy_bitmap(lata1);
destroy_bitmap(lata2);
destroy_bitmap(lata3);
destroy_bitmap(papel);
destroy_bitmap(papel1);
destroy_bitmap(papel2);
destroy_bitmap(papel3);
destroy_bitmap(vidro);
destroy_bitmap(vidro1);
Carregando_as_imagens_do_lixo();
}
draw_sprite (buffer, lata, 280,382);
draw_sprite (buffer, lata1, 400,301);
draw_sprite (buffer, lata2, 425,280);
draw_sprite (buffer, lata3, 220,400);
draw_sprite (buffer, papel, 300,322);
draw_sprite (buffer, vidro, 80,350);
}
//seta indicando o fim da primeira fase
if ((ponto_lata>3) && (ponto_papel>1) && (ponto_vidro>=1)){
seta=load_bitmap("seta.bmp", NULL);
draw_sprite (screen, seta, 550,280);
destroy_bitmap(seta);
}
draw_sprite (buffer,personagem.perso[MudarImagem], personagem.coluna,personagem.linha);
blit (buffer, screen, 0, 0, 0, 0, 640, 480);
clear(buffer);
}
//mensagens do jogo...
void Mensagens(){
textprintf_ex (cenario, font, 551,467,makecol32(215,215,215),1, "TEMPO ");
textprintf_ex(cenario, font, 596,467,makecol32(215,215,215),1, " %d:%d%d ",a,b,c );
textprintf_ex (cenario, font, 0, 468, makecol32 (250,255,100),1, "Metal: %d",ponto_lata);
textprintf_ex (cenario, font, 70, 468, makecol32 (000,80,255),1, "Papel: %d",ponto_papel);
textprintf_ex (cenario, font, 145, 468, makecol32 (80,255,000),1, "Vidro: %d",ponto_vidro);
textprintf_ex (cenario, font, 220, 468, makecol32 (255,000,000),1, "Plastico: 0");
if (frase_inicialH==true){
frase_inicialH=false;
allegro_message("Sou um tramontino na vida.\nPerecendo pelas ruas dessa capital em busca do sustento da minha familia.\nVarrer agora e meu destino.\nEntao vamos nessa pressionando a telca D!");
}
if(frase_inicialM==true){
frase_inicialM=false;
allegro_message("Agora eu estou no comando.\n Vou fazer meu servico e espero que o governo me pague.\nMe ajude pressionando a tecla D!");
}
}
//Funcao para simular o Cronômetro
void relogio(){
c--;
if (c<0){
b--;
c=9;
}
}
//Funcao para carregar as imagens do homem ou da mulher;
void direcionando_imgs(){
personagem.coluna=0;
personagem.linha=327;
MudarImagem=0;
if (personagem.nome=='H'){
personagem.perso[0] = load_bitmap("Boy-paradoD.bmp", NULL);
personagem.perso[1] = load_bitmap("Boy-andando1.bmp", NULL);
personagem.perso[2] = load_bitmap("Boy-andando2.bmp", NULL);
personagem.perso[3] = load_bitmap("Boy-andando3.bmp", NULL);
personagem.perso[4] = load_bitmap("Boy-andando4.bmp", NULL);
personagem.perso[5] = load_bitmap("Boy-andando5.bmp", NULL);
personagem.perso[6] = load_bitmap("Boy-andando6.bmp", NULL);
personagem.perso[7] = load_bitmap("Boy-andando7.bmp", NULL);
personagem.perso[8] = load_bitmap("Boy-andando8.bmp", NULL);
personagem.perso[9] = load_bitmap("Boy-andando9.bmp", NULL);
personagem.perso[10] = load_bitmap("Boy-andando10.bmp", NULL);
personagem.perso[11] = load_bitmap("Boy-andando11.bmp", NULL);
personagem.perso[12] = load_bitmap("Boy-andando12.bmp", NULL);
personagem.perso[13] = load_bitmap("Boy-andando13.bmp", NULL);
personagem.perso[14] = load_bitmap("Boy-andando14.bmp", NULL);
personagem.perso[15] = load_bitmap("Boy-andando15.bmp", NULL);
personagem.perso[16] = load_bitmap("Boy-andando16.bmp", NULL);
personagem.perso[17] = load_bitmap("Boy-andando17.bmp", NULL);
personagem.perso[18] = load_bitmap("Boy-andando18.bmp", NULL);
personagem.perso[19] = load_bitmap("Boy-andando19.bmp", NULL);
personagem.perso[20] = load_bitmap("Boy-andando20.bmp", NULL);
personagem.perso[21] = load_bitmap("Boy-andando21.bmp", NULL);
personagem.perso[22] = load_bitmap("Boy-andando22.bmp", NULL);
personagem.perso[23] = load_bitmap("Boy-andando23.bmp", NULL);
personagem.perso[24] = load_bitmap("Boy-andando24.bmp", NULL);
personagem.perso[25] = load_bitmap("Boy-paradoE.bmp", NULL);
personagem.perso[26] = load_bitmap("Boy-varrendo1.bmp", NULL);
personagem.perso[27] = load_bitmap("Boy-varrendo2.bmp", NULL);
personagem.perso[28] = load_bitmap("Boy-varrendo3.bmp", NULL);
personagem.perso[29] = load_bitmap("Boy-varrendo4.bmp", NULL);
personagem.perso[30] = load_bitmap("Boy-varrendo5.bmp", NULL);
personagem.perso[31] = load_bitmap("Boy-varrendo6.bmp", NULL);
personagem.perso[32] = load_bitmap("Boy-varrendo7.bmp", NULL);
personagem.perso[33] = load_bitmap("Boy-varrendo8.bmp", NULL);
personagem.perso[34] = load_bitmap("Boy-varrendo9.bmp", NULL);
personagem.perso[35] = load_bitmap("Boy-varrendo10.bmp", NULL);
personagem.perso[36] = load_bitmap("Boy-varrendo11.bmp", NULL);
personagem.perso[37] = load_bitmap("Boy-varrendo12.bmp", NULL);
}
else{
personagem.perso[0] = load_bitmap("Girl-paradaD.bmp", NULL);
personagem.perso[1] = load_bitmap("Girl-andando1.bmp", NULL);
personagem.perso[2] = load_bitmap("Girl-andando2.bmp", NULL);
personagem.perso[3] = load_bitmap("Girl-andando3.bmp", NULL);
personagem.perso[4] = load_bitmap("Girl-andando4.bmp", NULL);
personagem.perso[5] = load_bitmap("Girl-andando5.bmp", NULL);
personagem.perso[6] = load_bitmap("Girl-andando6.bmp", NULL);
personagem.perso[7] = load_bitmap("Girl-andando7.bmp", NULL);
personagem.perso[8] = load_bitmap("Girl-andando8.bmp", NULL);
personagem.perso[9] = load_bitmap("Girl-andando9.bmp", NULL);
personagem.perso[10] = load_bitmap("Girl-andando10.bmp", NULL);
personagem.perso[11] = load_bitmap("Girl-andando11.bmp", NULL);
personagem.perso[12] = load_bitmap("Girl-andando12.bmp", NULL);
personagem.perso[13] = load_bitmap("Girl-andando13.bmp", NULL);
personagem.perso[14] = load_bitmap("Girl-andando14.bmp", NULL);
personagem.perso[15] = load_bitmap("Girl-andando15.bmp", NULL);
personagem.perso[16] = load_bitmap("Girl-andando16.bmp", NULL);
personagem.perso[17] = load_bitmap("Girl-andando17.bmp", NULL);
personagem.perso[18] = load_bitmap("Girl-andando18.bmp", NULL);
personagem.perso[19] = load_bitmap("Girl-andando19.bmp", NULL);
personagem.perso[20] = load_bitmap("Girl-andando20.bmp", NULL);
personagem.perso[21] = load_bitmap("Girl-andando21.bmp", NULL);
personagem.perso[22] = load_bitmap("Girl-andando22.bmp", NULL);
personagem.perso[23] = load_bitmap("Girl-andando23.bmp", NULL);
personagem.perso[24] = load_bitmap("Girl-andando24.bmp", NULL);
personagem.perso[25] = load_bitmap("Girl-paradaE.bmp", NULL);
personagem.perso[26] = load_bitmap("Girl-varrendo1.bmp", NULL);
personagem.perso[27] = load_bitmap("Girl-varrendo2.bmp", NULL);
personagem.perso[28] = load_bitmap("Girl-varrendo3.bmp", NULL);
personagem.perso[29] = load_bitmap("Girl-varrendo4.bmp", NULL);
personagem.perso[30] = load_bitmap("Girl-varrendo5.bmp", NULL);
personagem.perso[31] = load_bitmap("Girl-varrendo6.bmp", NULL);
personagem.perso[32] = load_bitmap("Girl-varrendo7.bmp", NULL);
personagem.perso[33] = load_bitmap("Girl-varrendo8.bmp", NULL);
personagem.perso[34] = load_bitmap("Girl-varrendo9.bmp", NULL);
personagem.perso[35] = load_bitmap("Girl-varrendo10.bmp", NULL);
personagem.perso[36] = load_bitmap("Girl-varrendo11.bmp", NULL);
personagem.perso[37] = load_bitmap("Girl-varrendo12.bmp", NULL);
}
}
void movimentando_personagem(){
if (key[KEY_RIGHT]){
MudarImagem++;
personagem.coluna+=15;
if (MudarImagem>12){
MudarImagem =1;
}
}
if (key[KEY_LEFT]){
if(MudarImagem<13){
MudarImagem=13;
}
MudarImagem++;
personagem.coluna-=15;
if (MudarImagem>24){
MudarImagem = 13;
}
}
if (key[KEY_UP]){
if (MudarImagem>12){
MudarImagem++;
if (MudarImagem>24)
MudarImagem=13;
}
else{
MudarImagem++;
if (MudarImagem>12)
MudarImagem=1;
}
personagem.linha-=15;
}
if (key[KEY_DOWN]){
if (MudarImagem>12){
MudarImagem++;
if (MudarImagem>24)
MudarImagem=13;
}
else{
MudarImagem++;
if (MudarImagem>12)
MudarImagem=1;
}
personagem.linha+=15;
}
//Varrendo...
if (key[KEY_D]){
if (MudarImagem<26){
MudarImagem=26;
}
MudarImagem++;
if (MudarImagem>37)
MudarImagem=26;
//retirando o lixo... e pontuando de acordo com o material recolhido
//1parte
if (x!=700){
//Metal
if ((personagem.coluna == 255) && (personagem.linha == 190)){
lata = load_bitmap("limpo.bmp", NULL);
if (lixo1==1){
lixo1=2;
ponto_lata++;
play_sample (ponto,255,128,1000, FALSE);
}
}
if ((personagem.coluna == 420) && (personagem.linha == 190)){
lata1 = load_bitmap("limpo.bmp", NULL);
if (lixo2==1){
lixo2=2;
ponto_lata++;
play_sample (ponto,255,128,1000, FALSE);
}
}
if ((personagem.coluna == 465) && (personagem.linha == 190)){
lata2 = load_bitmap("limpo.bmp", NULL);
if (lixo3==1){
lixo3=2;
ponto_lata++;
play_sample (ponto,255,128,1000, FALSE);
}
}
if ((personagem.coluna == 450) && (personagem.linha == 312)){
lata3 = load_bitmap("limpo.bmp", NULL);
if (lixo4==1){
lixo4=2;
ponto_lata++;
play_sample (ponto,255,128,1000, FALSE);
}
}
//papel
if ((personagem.coluna == 300) && (personagem.linha == 282)){
papel = load_bitmap("limpo.bmp", NULL);
if (pap==1){
pap=2;
ponto_papel++;
play_sample (ponto,255,128,1000, FALSE);
}
}
if ((personagem.coluna == 150) && (personagem.linha == 222)){
papel1 = load_bitmap("limpo.bmp", NULL);
if (pap1==1){
pap1=2;
ponto_papel++;
play_sample (ponto,255,128,1000, FALSE);
}
}
if ((personagem.coluna == 15) && (personagem.linha == 312)){
papel2 = load_bitmap("limpo.bmp", NULL);
if (pap2==1){
pap2=2;
ponto_papel++;
play_sample (ponto,255,128,1000, FALSE);
}
}
if ((personagem.coluna == -35) && (personagem.linha == 190)){
papel3 = load_bitmap("limpo.bmp", NULL);
if (pap3==1){
pap3=2;
ponto_papel++;
play_sample (ponto,255,128,1000, FALSE);
}
}
//vidro
if ((personagem.coluna == 0) && (personagem.linha == 252)){
vidro = load_bitmap("limpo.bmp", NULL);
if (vid==1){
vid=2;
ponto_vidro++;
play_sample (ponto,255,128,1000, FALSE);
}
}
}
//2 parte
if (x==700){
//Metal
if ((personagem.coluna ==235) && (personagem.linha == 295)){
lata = load_bitmap("limpo.bmp", NULL);
if (lixo1!=0){
lixo1=0;
ponto_lata++;
play_sample (ponto,255,128,1000, FALSE);
}
}
if ((personagem.coluna ==355) && (personagem.linha == 205)){
lata1 = load_bitmap("limpo.bmp", NULL);
if (lixo2!=0){
lixo2=0;
ponto_lata++;
play_sample (ponto,255,128,1000, FALSE);
}
}
if ((personagem.coluna >=370)&&(personagem.coluna <=375) && (personagem.linha == 190)){
lata2 = load_bitmap("limpo.bmp", NULL);
if (lixo3!=0){
lixo3=0;
ponto_lata++;
play_sample (ponto,255,128,1000, FALSE);
if (ponto_lata>=4)
b+=2;
}
}
if ((personagem.coluna ==160) && (personagem.linha == 312)){
lata3 = load_bitmap("limpo.bmp", NULL);
if (lixo4!=0){
lixo4=0;
ponto_lata++;
play_sample (ponto,255,128,1000, FALSE);
}
}
//papel
if ((personagem.coluna ==235) && (personagem.linha == 222)){
papel = load_bitmap("limpo.bmp", NULL);
if (pap!=0){
pap=0;
ponto_papel++;
play_sample (ponto,255,128,1000, FALSE);
//adicionando mais tempo caso a pessoa tenha conseguido 3 papeis...
if (ponto_papel>=2)
b+=2;
}
}
//vidro
if ((personagem.coluna >=10) && (personagem.coluna <=15) && (personagem.linha >= 265) && (personagem.linha <= 267) ){
vidro = load_bitmap("limpo.bmp", NULL);
if (vid!=0){
vid=0;
ponto_vidro++;
play_sample (ponto,255,128,1000, FALSE);
if (ponto_vidro>1)
b+=1;
}
}
}
/*FIM de KEY D*/
}
if ((!key[KEY_DOWN]) && (!key[KEY_UP]) && (!key[KEY_LEFT]) && (!key[KEY_RIGHT]) && (!key[KEY_D])){
if (MudarImagem>25)
MudarImagem=0;
if (MudarImagem>12)
MudarImagem=25;
if (MudarImagem<12)
MudarImagem=0;
}
}
//carregando as imagens do lixo
void Carregando_as_imagens_do_lixo(){
lata = load_bitmap("latinha.bmp", NULL);
lata1 = load_bitmap("latinha.bmp", NULL);
lata2 = load_bitmap("latinha.bmp", NULL);
lata3 = load_bitmap("latinha.bmp", NULL);
papel = load_bitmap("papel.bmp", NULL);
papel1 = load_bitmap("papel.bmp", NULL);
papel2 = load_bitmap ("papel.bmp", NULL);
papel3 = load_bitmap ("papel.bmp", NULL);
vidro = load_bitmap ("vidro.bmp", NULL);
vidro1 = load_bitmap ("vidro.bmp", NULL);
vidro2 = load_bitmap ("vidro.bmp", NULL);
vidro3 = load_bitmap ("vidro.bmp", NULL);
}
//trabalhando as colisoes
void colisoes(){
if(personagem.linha>357)
personagem.linha = 357;
if (x!=700){
if ((personagem.linha<207)>-30) && (personagem.coluna<200)){
personagem.linha = 207;
}
}
if ((personagem.linha<190)>-60) && (personagem.coluna<590)){
personagem.linha = 190;
}
if (personagem.coluna<-50)
personagem.coluna = -50;
if (personagem.coluna >585)
personagem.coluna = 585;
}
void Movimento_do_cenario(){
if (personagem.coluna == x){
x=700;
personagem.coluna = -300;
cenario = load_bitmap("cenario2.bmp", NULL);
}
//fim da primeira parte e indo para a segunda...
if ((personagem.coluna == y) && (ponto_lata>3) && (ponto_papel>1) && (ponto_vidro>=1) ){
allegro_message("Parabens voce passou da primeira fase!!!");
y=701;
}
}
9 comentários:
não compreendi direito a primeira parte do código, teria como detalhar?
Colega, deixe a parte do codigo que vc nao compreendeu aqui... assim poderei te ajudar melhor
Aqui peguei o código e joguei no dev, inventei umas figurinhas aqui mas dá pau na hora de destruir quando teclo D. Que que rola?
Aqui peguei o código e joguei no dev, inventei umas figurinhas aqui mas dá pau na hora de destruir quando teclo D. Que que rola?
Aqui peguei o código e joguei no dev, inventei umas figurinhas aqui mas dá pau na hora de destruir quando teclo D. Que que rola?
Aqui peguei o código e joguei no dev, inventei umas figurinhas aqui mas dá pau na hora de destruir quando teclo D. Que que rola?
anônimo o código estava com um "erro" a função retorne é que estava causando esse travamento. fiz a correção aumentando o tamanho do vetor que carrega as imagens, assim todas as imagens serão carregas uma única vez, sem a necessidade de trocar as imagens quando o personagem "varre" a cidade.
veja o código novamente e repare q a antiga função Retorne(); já não existe.
OBs: na segunda parte postarei as imagens e o som utilizado no jogo, assim ficará mais fácil o entendimento!
Bem, como ninguém mais comentou... acredito que não há mais dúvidas, então darei início a outro projeto!
Uupa' Fala, menino!
Aí, já imaginou o Seu Petró dos pastéis estrelando uma participação no Naruto?
Você acha que ele seria quem? Huahuahua'
Postar um comentário