Ir para conteúdo
Fórum Script Brasil

joaovictorcaixeta

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre joaovictorcaixeta

joaovictorcaixeta's Achievements

0

Reputação

  1. estou fazendo esse jogo para um trabalho da faculdade e gostaria de adicionar um placar a ele, mas não consigo pensar em alguma forma de fazer isso. tengo uma imagem de pokebola salva que seria para marcar os pontos, a cada ponto de alguém surge uma pokebola dessa no lado superior da tela do lado de quem marcou o ponto, é uma sugestão de como eu gostaria de fazer, mas não estou conseguindo pensar em como, caso alguém saiba como fazer isso ou so como instalar um score normal mesmo com números padrão seria de grande ajuda, segue o código do jogo funcionando até o momento /* Copyright (C) 2016 Marcelo Serrano Zanetti - All Rights Reserved and Pedro Milano 2021 * Licensed under the GNU GPL V3.0 license. All conditions apply. * Powered by Allegro: http://liballeg.org/license.html */ #include <stdio.h> #include <allegro5/allegro.h> #include <allegro5/allegro_image.h> #include <allegro5/allegro_acodec.h> #include <allegro5/allegro_audio.h> const float FPS = 60; const int SCREEN_W = 1024; const int SCREEN_H = 546; const int BOLA_TAMANHO = 32; const int REBATEDOR_LARGURA = 32; const int REBATEDOR_ALTURA = 32; int main(int argc, char **argv) { ALLEGRO_DISPLAY *display = NULL; ALLEGRO_EVENT_QUEUE *event_queue = NULL; ALLEGRO_TIMER *timer = NULL; ALLEGRO_BITMAP *treinador = NULL; ALLEGRO_BITMAP *pokemon = NULL; ALLEGRO_BITMAP *bola = NULL; ALLEGRO_BITMAP *background = NULL; ALLEGRO_SAMPLE *sample=NULL; ALLEGRO_SAMPLE *sample1=NULL; ALLEGRO_SAMPLE *sample2=NULL; ALLEGRO_SAMPLE *sample3=NULL; ALLEGRO_SAMPLE *sample4=NULL; bool redraw = true; bool doexit = false; if(!al_init()) { fprintf(stderr, "failed to initialize allegro!\n"); return -1; } if(!al_install_keyboard()) { fprintf(stderr, "failed to initialize the keyboard!\n"); return -1; } timer = al_create_timer(1.0 / FPS); if(!timer) { fprintf(stderr, "failed to create timer!\n"); return -1; } if(!al_install_audio()) { fprintf(stderr, "failed to initialize audio!\n"); return -1; } else if (!al_reserve_samples(5)) { fprintf(stderr, "Falha ao reservar samples!\n"); return -1; } if(!al_init_acodec_addon()) { fprintf(stderr, "failed to initialize audio codecs!\n"); return -1; } if (!al_reserve_samples(1)) { fprintf(stderr, "failed to reserve samples!\n"); return -1; } sample = al_load_sample("audio/som.wav"); if (!sample) { fprintf(stderr, "Falha ao carregar sample.\n"); al_destroy_display(display); return false; } sample1 = al_load_sample("audio/intro.wav"); if (!sample1) { fprintf(stderr, "Falha ao carregar sample1.\n"); al_destroy_display(display); return false; } sample2 = al_load_sample("audio/treinador.wav"); if (!sample2) { fprintf(stderr, "Falha ao carregar sample2.\n"); al_destroy_display(display); return false; } sample3 = al_load_sample("audio/pokemon.wav"); if (!sample3) { fprintf(stderr, "Falha ao carregar sample3.\n"); al_destroy_display(display); return false; } sample4 = al_load_sample("audio/hit.wav"); if (!sample4) { fprintf(stderr, "Falha ao carregar sample4.\n"); al_destroy_display(display); return false; } al_set_new_display_flags(ALLEGRO_OPENGL | ALLEGRO_WINDOWED); display = al_create_display(SCREEN_W, SCREEN_H); if(!display) { fprintf(stderr, "failed to create display!\n"); al_destroy_timer(timer); return -1; } al_init_image_addon(); if(!al_init_image_addon()) { fprintf(stderr, "failed to initialize the image addon!\n"); return -1; } background = al_load_bitmap("imagens/fundo.png"); if(!background) { fprintf(stderr, "falhou ao criar o background bitmap!\n"); al_destroy_bitmap(treinador); al_destroy_bitmap(pokemon); al_destroy_display(display); al_destroy_timer(timer); return -1; al_set_target_bitmap(al_get_backbuffer(display)); } treinador = al_load_bitmap("imagens/treinador.png"); if(!treinador) { fprintf(stderr, "failed to create treinador bitmap!\n"); al_destroy_display(display); al_destroy_timer(timer); return -1; } pokemon = al_load_bitmap("imagens/pokemon.png"); if(!pokemon) { fprintf(stderr, "failed to create pokemon bitmap!\n"); al_destroy_display(display); al_destroy_timer(timer); return -1; } float bola_pos_x = SCREEN_W / 2.0 - BOLA_TAMANHO / 2.0; float bola_pos_y = SCREEN_H / 2.0 - BOLA_TAMANHO / 2.0; float bola_vx = -4; float bola_vy = -4; float treinador_pos_x = 0; float treinador_pos_y = SCREEN_H / 2.0 - REBATEDOR_ALTURA / 2.0; float treinador_vy = 0; float pokemon_pos_x = SCREEN_W - REBATEDOR_LARGURA; float pokemon_pos_y = SCREEN_H / 2.0 - REBATEDOR_ALTURA / 2.0; float pokemon_vy = 0; int click=0; int savebvx; int savebvy; bola = al_load_bitmap("imagens/bola1.png"); if(!bola) { fprintf(stderr, "falhou ao criar a bola bitmap!\n"); al_destroy_display(display); al_destroy_timer(timer); return -1; } event_queue = al_create_event_queue(); if(!event_queue) { fprintf(stderr, "failed to create event_queue!\n"); al_destroy_bitmap(treinador); al_destroy_bitmap(pokemon); al_destroy_display(display); al_destroy_timer(timer); al_destroy_bitmap(background); return -1; } al_set_window_title(display, "PongMon - Pokémon Pong Version"); al_set_target_bitmap(al_get_backbuffer(display)); al_play_sample(sample1, 1.0, 0.0,1.0,ALLEGRO_PLAYMODE_ONCE,NULL); menu(); al_register_event_source(event_queue, al_get_display_event_source(display)); al_register_event_source(event_queue, al_get_timer_event_source(timer)); al_register_event_source(event_queue, al_get_keyboard_event_source()); al_clear_to_color(al_map_rgb(0,0,0)); al_flip_display(); al_start_timer(timer); while(1) { ALLEGRO_EVENT ev; al_wait_for_event(event_queue, &ev); al_play_sample(sample, 1.0, 0.0,1.0,ALLEGRO_PLAYMODE_ONCE,NULL); if(ev.type==ALLEGRO_EVENT_MOUSE_BUTTON_DOWN) { switch(ev.mouse.button) { case 1: printf("x:%d y:%d\n",ev.mouse.x, ev.mouse.y); if(click==0) { savebvx=bola_vx; savebvy=bola_vy; bola_vx=0; bola_vy=0; click=1; } else { bola_vx=savebvx; bola_vy=savebvy; click=0; } break; } } else if(ev.type == ALLEGRO_EVENT_TIMER) { if(bola_pos_y < 0 || bola_pos_y > SCREEN_H - BOLA_TAMANHO) { bola_vy = -bola_vy; //al_play_sample(sample4, 1.0, 0.0,1.0,ALLEGRO_PLAYMODE_ONCE,NULL); // hitparede } if(bola_pos_x < 0 || bola_pos_x > SCREEN_W - BOLA_TAMANHO) { bola_pos_x = SCREEN_W / 2.0 - BOLA_TAMANHO / 2.0; bola_pos_y = SCREEN_H / 2.0 - BOLA_TAMANHO / 2.0; bola_vx = -4, bola_vy = -4; //al_play_sample(sample4, 1.0, 0.0,1.0,ALLEGRO_PLAYMODE_ONCE,NULL); // ponto } if(bola_pos_x <= treinador_pos_x + REBATEDOR_LARGURA) if(bola_pos_y+BOLA_TAMANHO>=treinador_pos_y) if(bola_pos_y-BOLA_TAMANHO<=treinador_pos_y+REBATEDOR_ALTURA) bola_vx = -bola_vx; if(bola_pos_x + BOLA_TAMANHO >= pokemon_pos_x ) if(bola_pos_y+BOLA_TAMANHO>=pokemon_pos_y) if(bola_pos_y-BOLA_TAMANHO<=pokemon_pos_y+REBATEDOR_ALTURA) bola_vx = -bola_vx; bola_pos_x += bola_vx; bola_pos_y += bola_vy; treinador_pos_y += treinador_vy; if (treinador_pos_y < 0) treinador_pos_y = 0; if (treinador_pos_y > SCREEN_H-REBATEDOR_ALTURA) treinador_pos_y = SCREEN_H-REBATEDOR_ALTURA; pokemon_pos_y += pokemon_vy; if (pokemon_pos_y < 0) pokemon_pos_y = 0; if (pokemon_pos_y > SCREEN_H) pokemon_pos_y = SCREEN_H; redraw = true; } else if(ev.type == ALLEGRO_EVENT_KEY_DOWN) { switch(ev.keyboard.keycode) { case ALLEGRO_KEY_UP: pokemon=al_load_bitmap("imagens/pu1.png"); pokemon_vy=-4; break; case ALLEGRO_KEY_DOWN: pokemon=al_load_bitmap("imagens/pd1.png"); pokemon_vy=4; break; case ALLEGRO_KEY_W: treinador=al_load_bitmap("imagens/u1.png"); treinador_vy=-4; break; case ALLEGRO_KEY_S: treinador=al_load_bitmap("imagens/d1.png"); treinador_vy=4; break; case ALLEGRO_KEY_ESCAPE: return 0; break; } } else if(ev.type == ALLEGRO_EVENT_KEY_UP) { switch(ev.keyboard.keycode) { case ALLEGRO_KEY_UP: pokemon=al_load_bitmap("imagens/pl1.png"); case ALLEGRO_KEY_DOWN: pokemon=al_load_bitmap("imagens/pl1.png"); pokemon_vy=0; break; case ALLEGRO_KEY_W: treinador=al_load_bitmap("imagens/r1.png"); case ALLEGRO_KEY_S: treinador=al_load_bitmap("imagens/r1.png"); treinador_vy=0; break; } } else if(ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE) { break; } if(redraw && al_is_event_queue_empty(event_queue)) { redraw = false; al_clear_to_color(al_map_rgb(0,100,0)); al_draw_bitmap(background, 0, 0, 0); al_draw_bitmap(treinador,treinador_pos_x, treinador_pos_y, 0); al_draw_bitmap(pokemon,pokemon_pos_x, pokemon_pos_y, 0); al_draw_bitmap(bola, bola_pos_x, bola_pos_y, 0); al_flip_display(); } } al_destroy_bitmap(treinador); al_destroy_bitmap(pokemon); al_destroy_timer(timer); al_destroy_display(display); al_destroy_event_queue(event_queue); al_destroy_sample(sample); al_destroy_sample(sample1); al_destroy_sample(sample2); al_destroy_sample(sample3); al_destroy_sample(sample4); return 0; } void menu() { ALLEGRO_BITMAP *menu=NULL; menu= al_load_bitmap("imagens/intro.png"); if(!menu) { fprintf(stderr, "Falha ao carregar bitmap menu!\n"); return -1; } al_draw_bitmap(menu, 0, 0, 0); al_flip_display(); al_rest(8); }
  2. estou fazendo um jogo pong em C para o trabalho de conclusão da cadeira de algoritimo e programação do curso de engenharia aeroespacial, e quero adicionar dois modos de jogo ao meu projeto, a primeira parte já esta concluida que é um jogo de duas pessoas onde uma controla um personagem do W e S e a outra nas setas para cima e para baixo do teclado, mas queria adicionar a função de jogo single player, que seria uma pessoa contra o computador, gostaria de saber como proceder para adicionar essa função de jogar contra o computador, caso alguém saiba e possa ajudar, obrigado
×
×
  • Criar Novo...