Allegro.cc - Online Community

Allegro.cc Forums » Programming Questions » Difficulty compiling on Windows

This thread is locked; no one can reply to it. rss feed Print
Difficulty compiling on Windows
mayna azevedo
Member #20,077
May 2021

Hello everybody.

I have a game in C with the allegro library, and it compiles perfectly on Linux. However, I'm not so lucky on Windows. I use the following command line in the Windows terminal:

gcc Dino_Pescocudo.c Dino_Pescocudo -lallegro -lallegro_font -lallegro_ttf -lallegro_image -lallegro_primitives -lallegro_audio -lallegro_acodec

And it's gives the following error (attached)

Here's the code:

#SelectExpand
2#include <stdio.h> 3#include <stdlib.h> 4#include <allegro5/allegro5.h> 5#include <allegro5/allegro_font.h> 6#include <allegro5/allegro_image.h> 7#include <allegro5/allegro_audio.h> // biblioteca de som 8#include <allegro5/allegro_acodec.h> // biblioteca complementar para o som 9#include <allegro5/allegro_primitives.h> // permite colocar formas simples, linhas, pontos, etc. (formas primitivas) 10#include <allegro5/allegro_ttf.h> //Para as TTF FONTS 11 12//GAME STATES, informamos o "status" do jogo 13#define STATE_START 1 14#define STATE_PRESSED_BURACO 2 15#define STATE_PRESSED_PULA_BURACO 3 16#define STATE_PRESSED_CAI_BURACO 4 17#define STATE_PRESSED_MACHUCADO_DESCANSA_OU_CORRE 5 18#define STATE_PRESSED_SONO_DESCANSA_OU_CORRE 6 19#define STATE_PRESSED_MACHUCADO_CORRE 7 20#define STATE_PRESSED_MACHUCADO_DESCANSA 8 21#define STATE_PRESSED_GAME_OVER 9 22#define STATE_PRESSED_SONO_CORRE 10 23#define STATE_PRESSED_SONO_DESCANSA 11 24#define STATE_PRESSED_CAI_BURACO_AJUDA 12 25#define STATE_PRESSED_CAI_BURACO_CORRE 13 26#define STATE_PRESSED_CAI_BURACO_CORRE_RAPIDO 14 27#define STATE_PRESSED_CAI_BURACO_CAVANDO 15 28#define STATE_PRESSED_CAI_BURACO_CAVANDO_CORRE 16 29#define STATE_PRESSED_CAI_BURACO_CAVANDO_AGUA 17 30#define STATE_CORRE 18 31#define STATE_ABRIGO 19 32 33int gameState = STATE_START; //Definimos o STATE de início 34 35 36char text[255] = " PRESSIONE ENTER PARA COMEÇAR O JOGO"; 37char text1[255] = ""; 38char text2[255] = ""; 39char text3[255] = "@ TODOS DIREITOS RESERVADOS AO DINO PESCOÇUDO @"; 40 41void must_init(bool test, const char *description){ 42 if(test) return; 43 44 printf("couldn't initialize %s\n", description); 45 exit(1); 46} 47 48int main(){ 49 must_init(al_init(), "allegro"); // auxilia o must_init(), evitar de colocar instruções a mais par averificar erros. 50 must_init(al_install_keyboard(), "keyboard"); 51 must_init(al_install_mouse(), "mouse"); // instalando o mouse (opcional), mas não o estamos utilizando 52 53 ALLEGRO_TIMER* timer = al_create_timer(1.0 / 30.0); 54 must_init(timer, "timer"); 55 56 ALLEGRO_TIMER* gameOverTimer = al_create_timer(3); //Game Over timer vai durar 3 segundos 57 must_init(gameOverTimer, "gameOverTimer"); 58 59 ALLEGRO_EVENT_QUEUE* queue = al_create_event_queue(); 60 must_init(queue, "queue"); 61 62 // Permite que as formas e linhas tenham maior definição, deixar mais suave. 63 al_set_new_display_option(ALLEGRO_SAMPLE_BUFFERS, 1, ALLEGRO_SUGGEST); // imagem suave 64 al_set_new_display_option(ALLEGRO_SAMPLES, 8, ALLEGRO_SUGGEST); // imagem suave 65 al_set_new_bitmap_flags(ALLEGRO_MIN_LINEAR | ALLEGRO_MAG_LINEAR); // imagem suave 66 67 ALLEGRO_DISPLAY* disp = al_create_display(1250, 800); 68 must_init(disp, "display"); 69 70 // Configuração de fontes, tamanhos etc. 71 must_init(al_init_font_addon(), "font"); //WE NEED TO INIT FONT FIRST! 72 must_init(al_init_ttf_addon(), "ttf font"); //THEN WE NEED TO INIT TTF FONTS 73 ALLEGRO_FONT* font = al_load_ttf_font("Antonio-Bold.ttf", 25, ALLEGRO_ALIGN_LEFT); //NOW WE CAN CHOOSE SIZE 74 ALLEGRO_FONT* font1 = al_load_ttf_font("Antonio-Bold.ttf", 25, ALLEGRO_ALIGN_LEFT); 75 ALLEGRO_FONT* font2 = al_load_ttf_font("Antonio-Bold.ttf", 25, ALLEGRO_ALIGN_LEFT); 76 ALLEGRO_FONT* font3 = al_load_ttf_font("Antonio-Bold.ttf", 8, ALLEGRO_ALIGN_LEFT); 77 78 79 must_init(al_init_primitives_addon(), "primitives"); // Para inserir linhas, formas e pontos no código. Não utilizamos 80 81 al_start_timer(timer); 82 al_register_event_source(queue, al_get_keyboard_event_source()); 83 al_register_event_source(queue, al_get_display_event_source(disp)); 84 al_register_event_source(queue, al_get_timer_event_source(timer)); 85 al_register_event_source(queue, al_get_mouse_event_source()); // adicionado para o mouse funcionar 86 87 // IMAGENS 88 must_init(al_init_image_addon(), "image addon"); 89 ALLEGRO_BITMAP* apresentacao = al_load_bitmap("apresentacao.png"); 90 must_init(apresentacao, "apresentacao"); 91 92 ALLEGRO_BITMAP* pula_ignora = al_load_bitmap("pula_ignora.png"); 93 must_init(pula_ignora, "pula_ignora"); 94 95 ALLEGRO_BITMAP* pulando = al_load_bitmap("pulando.png"); 96 must_init(pulando, "pulando"); 97 98 ALLEGRO_BITMAP* no_buraco = al_load_bitmap("no_buraco.png"); 99 must_init(no_buraco, "no_buraco"); 100 101 ALLEGRO_BITMAP* correndo = al_load_bitmap("correndo.png"); 102 must_init(correndo, "correndo"); 103 104 ALLEGRO_BITMAP* descansando = al_load_bitmap("descansando.png"); 105 must_init(descansando, "descansando"); 106 107 ALLEGRO_BITMAP* bebendo_agua = al_load_bitmap("bebendo_agua.png"); 108 must_init(bebendo_agua, "bebendo_agua"); 109 110 ALLEGRO_BITMAP* abrigo = al_load_bitmap("abrigo.png"); 111 must_init(abrigo, "abrigo"); 112 113 ALLEGRO_BITMAP* game_over = al_load_bitmap("game_over.png"); 114 must_init(game_over, "game_over"); 115 116 ALLEGRO_BITMAP* pedindo_ajuda = al_load_bitmap("pedindo_ajuda.png"); 117 must_init(pedindo_ajuda, "pedindo_ajuda"); 118 119 ALLEGRO_BITMAP* planta = al_load_bitmap("planta.png"); 120 must_init(planta, "planta"); 121 122 ALLEGRO_BITMAP* saiu_buraco = al_load_bitmap("saiu_buraco.png"); 123 must_init(saiu_buraco, "saiu_buraco"); 124 125 // adicionando o audio ao jogo 126 must_init(al_install_audio(), "audio"); 127 must_init(al_init_acodec_addon(), "audio codecs"); 128 must_init(al_reserve_samples(16), "reserve samples"); 129 130 // para música longa, música tema do jogo 131 ALLEGRO_AUDIO_STREAM* music = al_load_audio_stream("music.opus", 2, 2048); // os números são referentes as áreas da memoria onde a musica sera armazenada. não mudar 132 must_init(music, "music"); 133 al_set_audio_stream_playmode(music, ALLEGRO_PLAYMODE_LOOP); // música em loop 134 al_attach_audio_stream_to_mixer(music, al_get_default_mixer()); // linha para o som sair 135 136 bool done = false; 137 bool redraw = false; 138 ALLEGRO_EVENT event; 139 140 #define KEY_SEEN 1 141 #define KEY_RELEASED 2 142 143 unsigned char key[ALLEGRO_KEY_MAX]; 144 memset(key, 0, sizeof(key)); 145 al_hide_mouse_cursor(disp); 146 147 148 149 while(1){ 150 al_wait_for_event(queue, &event); 151 152 switch(event.type) 153 { 154 case ALLEGRO_EVENT_TIMER: 155 { 156 redraw = true; 157 158 if(gameState == STATE_PRESSED_GAME_OVER && al_get_timer_count(gameOverTimer) > 0) //CASO STATE SEJA GAME OVER 159 { 160 sprintf(text, "%s", "RECOMEÇANDO O JOGO"); 161 gameState = STATE_START; 162 163 //RESET O GAME OVER TIMER! 164 al_stop_timer(gameOverTimer); 165 al_set_timer_count(gameOverTimer, 0); 166 } 167 168 break; 169 } 170 171 case ALLEGRO_EVENT_KEY_CHAR: 172 { 173 if(event.keyboard.keycode == ALLEGRO_KEY_ENTER && gameState == STATE_START) //OK 174 { 175 sprintf(text, "%s", " EM UM DIA QUALQUER, DINO PERCEBE UM METEORO VINDO EM SUA DIREÇÃO E COMEÇA A FUGIR."); 176 sprintf(text1, "%s", " APÓS UM TEMPO CORRENDO, DINO VÊ UM BURACO NO SEU CAMINHO."); 177 sprintf(text2, "%s", " O QUE DINO DEVE FAZER: PULAR (A) OU TENTAR CONTORNAR O BURACO (B)?"); 178 sprintf(text3, "%s", ""); 179 gameState = STATE_PRESSED_BURACO; 180 181 } 182 // PULA BURACO 183 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_BURACO) //OK 184 { 185 sprintf(text, "%s", " DINO PULOU O BURACO, MAS MACHUCOU A PATINHA!!! "); 186 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 187 sprintf(text2, "%s", " CONTINUAR CORRENDO (A), MESMO MACHUCADO, OU COMER UMA PLANTA MEDICINAL PARA PASSAR A DOR (B)?"); 188 sprintf(text3, "%s", ""); 189 gameState = STATE_PRESSED_PULA_BURACO; 190 } 191 192 // DINO PULA BURACO E CORRE 193 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_PULA_BURACO) //OK .... 194 { 195 sprintf(text, "%s", " DINO, MESMO MACHUCADO, CONTINUOU CORRENDO. ENTRETANTO, ESTÁ CORRENDO MUITO DEVAGAR!"); 196 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 197 sprintf(text2, "%s", " CONTINUAR CORRENDO MACHUCADO (A) OU DESCANSAR PARA SARAR A PATINHA (B)?"); 198 sprintf(text3, "%s", ""); 199 gameState = STATE_PRESSED_MACHUCADO_DESCANSA_OU_CORRE; 200 } 201 202 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_MACHUCADO_DESCANSA_OU_CORRE) //OK 203 { 204 sprintf(text, "%s", " DINO CONTINUOU CORRENDO, MAS ESTÁ DEVAGAR DEVIDO A PATA MACHUCADA. E O METEORO ESTÁ MAIS PRÓXIMO!"); 205 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 206 sprintf(text2, "%s", " CONTINUAR CORRENDO DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 207 sprintf(text3, "%s", ""); 208 gameState = STATE_PRESSED_MACHUCADO_CORRE; 209 } 210 211 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_MACHUCADO_DESCANSA_OU_CORRE) //OK 212 { 213 sprintf(text, "%s", " DINO PAROU PARA DESCANSAR, MAS PERDEU MUITO TEMPO E O METEORO ESTÁ MUITO PRÓXIMO!"); 214 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 215 sprintf(text2, "%s", " DEVE CORRER DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 216 sprintf(text3, "%s", ""); 217 gameState = STATE_PRESSED_MACHUCADO_DESCANSA; 218 } 219 220 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_MACHUCADO_CORRE) 221 { 222 sprintf(text, "%s", " O METEORO CADA VEZ MAIS PRÓXIMO!"); 223 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 224 sprintf(text2, "%s", " CONTINUAR CORRENDO DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 225 sprintf(text3, "%s", ""); 226 gameState = STATE_CORRE; 227 } 228 229 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_MACHUCADO_CORRE) /// REFAZER, ESTÁ ERRADO 230 { 231 sprintf(text, "%s", " DINO ESTÁ NO ABRIGO, E O METEORO CADA VEZ MAIS PRÓXIMO!"); 232 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 233 sprintf(text2, "%s", " DEVE VOLTAR A CORRER DO METEORO (A) OU CONTINUAR NO ABRIGO (B)?"); 234 sprintf(text3, "%s", ""); 235 gameState = STATE_ABRIGO; 236 } 237 238 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_MACHUCADO_DESCANSA) 239 { 240 sprintf(text, "%s", " O METEORO CADA VEZ MAIS PRÓXIMO!"); 241 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 242 sprintf(text2, "%s", " CONTINUAR CORRENDO DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 243 sprintf(text3, "%s", ""); 244 gameState = STATE_CORRE; 245 } 246 247 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_MACHUCADO_DESCANSA) 248 { 249 sprintf(text, "%s", " DINO ESTÁ NO ABRIGO, E O METEORO CADA VEZ MAIS PRÓXIMO!"); 250 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 251 sprintf(text2, "%s", " DEVE VOLTAR A CORRER DO METEORO (A) OU CONTINUAR NO ABRIGO (B)?"); 252 sprintf(text3, "%s", ""); 253 gameState = STATE_ABRIGO; 254 } 255 256 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_CORRE) 257 { 258 sprintf(text, "%s", " VOCÊ MATOU O DINO!"); 259 sprintf(text1, "%s", ""); 260 sprintf(text2, "%s", " GAME OVER! DESEJA JOGAR NOVAMENTE (S)?"); 261 sprintf(text3, "%s", ""); 262 gameState = STATE_PRESSED_GAME_OVER; 263 } 264 265 else if(event.keyboard.keycode == ALLEGRO_KEY_S && gameState == STATE_PRESSED_GAME_OVER) 266 { 267 sprintf(text, "%s", ""); 268 sprintf(text1, "%s", " PARA RECOMEÇA, APERTE"); 269 sprintf(text2, "%s", " ENTER"); 270 sprintf(text3, "%s", ""); 271 gameState = STATE_START; 272 } 273 274 275 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_CORRE) 276 { 277 sprintf(text, "%s", " VOCÊ MATOU O DINO!"); 278 sprintf(text1, "%s", ""); 279 sprintf(text2, "%s", " GAME OVER! DESEJA JOGAR NOVAMENTE (S)?"); 280 sprintf(text3, "%s", ""); 281 gameState = STATE_PRESSED_GAME_OVER; 282 } 283 284 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_ABRIGO) 285 { 286 sprintf(text, "%s", " VOCÊ MATOU O DINO!"); 287 sprintf(text1, "%s", ""); 288 sprintf(text2, "%s", " GAME OVER! DESEJA JOGAR NOVAMENTE (S)?"); 289 sprintf(text3, "%s", ""); 290 gameState = STATE_PRESSED_GAME_OVER; 291 } 292 293 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_ABRIGO) 294 { 295 sprintf(text, "%s", " VOCÊ MATOU O DINO!"); 296 sprintf(text1, "%s", ""); 297 sprintf(text2, "%s", " GAME OVER! DESEJA JOGAR NOVAMENTE (S)?"); 298 sprintf(text3, "%s", ""); 299 gameState = STATE_PRESSED_GAME_OVER; 300 } 301 302 //DINO PULA O BURACO E COME A PLANTA 303 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_PULA_BURACO) 304 { 305 sprintf(text, "%s", " DINO PAROU PARA COMER A PLANTA MEDICINAL, E A DOR PASSOU. ENTRETANTO, A PLANTA DEIXOU DINO COM SONO."); 306 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 307 sprintf(text2, "%s", " DEVE COMEÇAR A CORRER (A) MESMO SONOLENTO OU PARAR PARA DESCANSAR (B)?"); 308 sprintf(text3, "%s", ""); 309 gameState = STATE_PRESSED_SONO_DESCANSA_OU_CORRE; 310 } 311 312 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_SONO_DESCANSA_OU_CORRE) 313 { 314 sprintf(text, "%s", " DINO ESTÁ CORRENDO LENTAMENTE, DEVIDO AO SONO. ENTRETANTO, PERDEU MUITO TEMPO E O METEORO ESTÁ PRÓXIMO!"); 315 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 316 sprintf(text2, "%s", " DEVE CONTINUAR CORRENDO DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 317 sprintf(text3, "%s", ""); 318 gameState = STATE_PRESSED_SONO_CORRE; 319 } 320 321 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_SONO_DESCANSA_OU_CORRE) 322 { 323 sprintf(text, "%s", " DINO PAROU PARA DESCANSAR, MAS PERDEU MUITO TEMPO. O METEORO ESTÁ PRÓXIMO!"); 324 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 325 sprintf(text2, "%s", " DEVE CONTINUAR CORRENDO DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 326 sprintf(text3, "%s", ""); 327 gameState = STATE_PRESSED_SONO_DESCANSA; 328 } 329 330 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_SONO_CORRE) 331 { 332 sprintf(text, "%s", " DINO CONTINUA CORRENDO, E O METEORO ESTÁ CADA VEZ MAIS PRÓXIMO!"); 333 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 334 sprintf(text2, "%s", " DEVE CONTINUAR CORRER DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 335 sprintf(text3, "%s", ""); 336 gameState = STATE_CORRE; 337 } 338 339 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_SONO_CORRE) 340 { 341 sprintf(text, "%s", " DINO ESTÁ NO ABRIGO, E O METEORO ESTÁ CHEGANDO!"); 342 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 343 sprintf(text2, "%s", " DEVE VOLTAR A CORRER DO METEORO (A) OU CONTINUAR NO ABRIGO (B)?"); 344 sprintf(text3, "%s", ""); 345 gameState = STATE_ABRIGO; 346 } 347 348 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_SONO_DESCANSA) 349 { 350 sprintf(text, "%s", " DINO CONTINUAR CORRENDO, E O METEORO ESTÁ CADA VEZ MAIS PRÓXIMO!"); 351 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 352 sprintf(text2, "%s", " DEVE CONTINUAR CORRER DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 353 sprintf(text3, "%s", ""); 354 gameState = STATE_CORRE; 355 } 356 357 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_SONO_DESCANSA) 358 { 359 sprintf(text, "%s", " DINO ESTÁ NO ABRIGO, E O METEORO ESTÁ CHEGANDO!"); 360 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 361 sprintf(text2, "%s", " DEVE VOLTAR A CORRER DO METEORO (A) OU CONTINUAR NO ABRIGO (B)?"); 362 sprintf(text3, "%s", ""); 363 gameState = STATE_ABRIGO; 364 } 365 366 367 // CAI NO BURACO 368 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_BURACO) 369 { 370 sprintf(text, "%s", " DINO TENTOU CONTONAR O BURACO, E ACABOU CAINDO! "); 371 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 372 sprintf(text2, "%s", " DEVE PEDIR AJUDA (A) OU SAIR DO BURACO CAVANDO (B)?"); 373 sprintf(text3, "%s", ""); 374 gameState = STATE_PRESSED_CAI_BURACO; 375 } 376 377 // CAI BURACO SAI COM AJUDA 378 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_CAI_BURACO) 379 { 380 sprintf(text, "%s", " DINO PEDIU AJUDA, MAS DEMOROU MUITO, E ACABOU PERDENDO TEMPO PRECIOSO. "); 381 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 382 sprintf(text2, "%s", " DEVE CORRER NORMALMENTE (A) OU CORRER O MAIS RÁPIDO POSSIVEL (B)?"); 383 sprintf(text3, "%s", ""); 384 gameState = STATE_PRESSED_CAI_BURACO_AJUDA; 385 } 386 387 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_CAI_BURACO_AJUDA) 388 { 389 sprintf(text, "%s", " DINO NÃO ESTÁ CORRENDO RÁPIDO O SUFICIENTE, E O METEORO ESTÁ SE APROXIMANDO."); 390 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 391 sprintf(text2, "%s", " DINO DEVE CONTINUAR CORRENDO DO COMETA (A) OU PROCURAR ABRIGO (B)?"); 392 sprintf(text3, "%s", ""); 393 gameState = STATE_PRESSED_CAI_BURACO_CORRE; 394 } 395 396 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_CAI_BURACO_CORRE) 397 { 398 sprintf(text, "%s", " DINO CONTINUA CORRENDO, E O METEORO CADA VEZ MAIS PRÓXIMO!"); 399 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 400 sprintf(text2, "%s", " DINO DEVE CONTINUAR CORRER DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 401 sprintf(text3, "%s", ""); 402 gameState = STATE_CORRE; 403 } 404 405 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_CAI_BURACO_CORRE) 406 { 407 sprintf(text, "%s", " DINO ESTÁ NO ABRIGO, E O METEORO CADA VEZ MAIS PRÓXIMO!"); 408 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 409 sprintf(text2, "%s", " DEVE VOLTAR A CORRER DO METEORO (A) OU CONTINUAR NO ABRIGO (B)?"); 410 sprintf(text3, "%s", ""); 411 gameState = STATE_ABRIGO; 412 } 413 414 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_SONO_DESCANSA) 415 { 416 sprintf(text, "%s", " O METEORO CADA VEZ MAIS PRÓXIMO!"); 417 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 418 sprintf(text2, "%s", " CONTINUAR CORRENDO DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 419 sprintf(text3, "%s", ""); 420 gameState = STATE_CORRE; 421 } 422 423 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_SONO_DESCANSA) 424 { 425 sprintf(text, "%s", " DINO ESTÁ NO ABRIGO, E O METEORO CADA VEZ MAIS PRÓXIMO!"); 426 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 427 sprintf(text2, "%s", " DEVE VOLTAR A CORRER DO METEORO (A) OU CONTINUAR NO ABRIGO (B)?"); 428 sprintf(text3, "%s", ""); 429 gameState = STATE_ABRIGO; 430 } 431 432 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_CAI_BURACO_AJUDA) 433 { 434 sprintf(text, "%s", " DINO ESTAVA CORRENDO MUITO RÁPIDO, E ACABOU TROPEÇANDO E CAINDO. COM ISSO, O METEORO ESTÁ CADA VEZ MAIS PRÓXIMO "); 435 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 436 sprintf(text2, "%s", " DEVE CONTINUAR CORRENDO DO COMETA (A) OU PROCURAR ABRIGO (B)?"); 437 sprintf(text3, "%s", ""); 438 gameState = STATE_PRESSED_CAI_BURACO_CORRE_RAPIDO; 439 } 440 441 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_CAI_BURACO_CORRE_RAPIDO) 442 { 443 sprintf(text, "%s", " O METEORO CADA VEZ MAIS PRÓXIMO!"); 444 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 445 sprintf(text2, "%s", " CONTINUAR CORRENDO DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 446 sprintf(text3, "%s", ""); 447 gameState = STATE_CORRE; 448 } 449 450 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_CAI_BURACO_CORRE_RAPIDO) 451 { 452 sprintf(text, "%s", " DINO ESTÁ NO ABRIGO, E O METEORO CADA VEZ MAIS PRÓXIMO!"); 453 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 454 sprintf(text2, "%s", " DEVE VOLTAR A CORRER DO METEORO (A) OU CONTINUAR NO ABRIGO (B)?"); 455 sprintf(text3, "%s", ""); 456 gameState = STATE_ABRIGO; 457 } 458 459 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_SONO_DESCANSA) 460 { 461 sprintf(text, "%s", " O METEORO CADA VEZ MAIS PRÓXIMO!"); 462 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 463 sprintf(text2, "%s", " CONTINUAR CORRENDO DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 464 sprintf(text3, "%s", ""); 465 gameState = STATE_CORRE; 466 } 467 468 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_SONO_DESCANSA) 469 { 470 sprintf(text, "%s", " DINO ESTÁ NO ABRIGO, E O METEORO CADA VEZ MAIS PRÓXIMO!"); 471 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 472 sprintf(text2, "%s", " DEVE VOLTAR A CORRER DO METEORO (A) OU CONTINUAR NO ABRIGO (B)?"); 473 sprintf(text3, "%s", ""); 474 gameState = STATE_ABRIGO; 475 } 476 477 // CAI BURACO SAI CAVANDO 478 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_CAI_BURACO) // 479 { 480 sprintf(text, "%s", " DINO SAIU DO BURACO CAVANDO, MAS AGORA ESTÁ COM MUITA SEDE."); 481 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 482 sprintf(text2, "%s", " DEVE IGNORAR A SEDE E COMEÇAR A CORRER (A) OU BEBER ÁGUA (B)?"); 483 sprintf(text3, "%s", ""); 484 gameState = STATE_PRESSED_CAI_BURACO_CAVANDO; 485 } 486 487 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_CAI_BURACO_CAVANDO) 488 { 489 sprintf(text, "%s", "DINO COMEÇAR A CORRER COM SEDE, E ISSO DEIXA-O MUITO LENTO. DESSA FORMA, O METEORO ESTÁ CADA VEZ MAIS PERTO."); 490 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 491 sprintf(text2, "%s", " DEVE CORRER DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 492 sprintf(text3, "%s", ""); 493 gameState = STATE_PRESSED_CAI_BURACO_CAVANDO_CORRE; 494 } 495 496 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_CAI_BURACO_CAVANDO) 497 { 498 sprintf(text, "%s", " DINO BEBE ÁGUA, MAS ACABA PERDENDO MUITO TEMPO. E O METEORO ESTÁ CADA VEZ MAIS PERTO!"); 499 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 500 sprintf(text2, "%s", " DEVE CORRER DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 501 sprintf(text3, "%s", ""); 502 gameState = STATE_PRESSED_CAI_BURACO_CAVANDO_AGUA; 503 } 504 505 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_CAI_BURACO_CAVANDO_CORRE) 506 { 507 sprintf(text, "%s", " O METEORO CADA VEZ MAIS PRÓXIMO!"); 508 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 509 sprintf(text2, "%s", " CONTINUAR CORRENDO DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 510 sprintf(text3, "%s", ""); 511 gameState = STATE_CORRE; 512 } 513 514 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_CAI_BURACO_CAVANDO_CORRE) 515 { 516 sprintf(text, "%s", " DINO ESTÁ NO ABRIGO, E O METEORO CADA VEZ MAIS PRÓXIMO!"); 517 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 518 sprintf(text2, "%s", " DEVE VOLTAR A CORRER DO METEORO (A) OU CONTINUAR NO ABRIGO (B)?"); 519 sprintf(text3, "%s", ""); 520 gameState = STATE_ABRIGO; 521 } 522 523 else if(event.keyboard.keycode == ALLEGRO_KEY_A && gameState == STATE_PRESSED_CAI_BURACO_CAVANDO_AGUA) 524 { 525 sprintf(text, "%s", " O METEORO CADA VEZ MAIS PRÓXIMO!"); 526 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 527 sprintf(text2, "%s", " CONTINUAR CORRENDO DO METEORO (A) OU PROCURAR ABRIGO (B)?"); 528 sprintf(text3, "%s", ""); 529 gameState = STATE_CORRE; 530 } 531 532 else if(event.keyboard.keycode == ALLEGRO_KEY_B && gameState == STATE_PRESSED_CAI_BURACO_CAVANDO_AGUA) 533 { 534 sprintf(text, "%s", " DINO ESTÁ NO ABRIGO, E O METEORO CADA VEZ MAIS PRÓXIMO!"); 535 sprintf(text1, "%s", " O QUE DINO DEVE FAZER:"); 536 sprintf(text2, "%s", " DEVE VOLTAR A CORRER DO METEORO (A) OU CONTINUAR NO ABRIGO (B)?"); 537 sprintf(text3, "%s", ""); 538 gameState = STATE_ABRIGO; 539 } 540 541 if(event.keyboard.keycode != ALLEGRO_KEY_ESCAPE) 542 { 543 break; 544 } 545 } 546 547 case ALLEGRO_EVENT_DISPLAY_CLOSE: 548 { 549 done = true; 550 break; 551 } 552 } 553 554 if(done) 555 break; 556 557 if(redraw && al_is_event_queue_empty(queue)) 558 { 559 al_clear_to_color(al_map_rgb(0, 0, 0)); 560 al_draw_text(font, al_map_rgb(255, 255, 255), 100, 550, 0, text); 561 al_draw_text(font1, al_map_rgb(255, 255, 255), 100, 600, 0, text1); 562 al_draw_text(font2, al_map_rgb(0, 255, 1), 100, 650, 0, text2); 563 al_draw_text(font2, al_map_rgb(0, 255, 1), 400, 700, 0, text3); 564 565 if(gameState == STATE_START) 566 al_draw_bitmap(apresentacao, 10, 50, 0); 567 if(gameState == STATE_PRESSED_BURACO) 568 al_draw_bitmap(pula_ignora, 130, 100, 0); 569 if(gameState == STATE_PRESSED_PULA_BURACO) 570 al_draw_bitmap(pulando, 130, 100, 0); 571 if(gameState == STATE_PRESSED_CAI_BURACO) 572 al_draw_bitmap(pedindo_ajuda, 130, 100, 0); 573 if(gameState == STATE_PRESSED_MACHUCADO_DESCANSA_OU_CORRE) 574 al_draw_bitmap(correndo, 130, 100, 0); 575 if(gameState == STATE_PRESSED_MACHUCADO_CORRE) 576 al_draw_bitmap(correndo, 130, 100, 0); 577 if(gameState == STATE_PRESSED_MACHUCADO_DESCANSA) 578 al_draw_bitmap(descansando, 130, 100, 0); 579 if(gameState == STATE_CORRE) 580 al_draw_bitmap(correndo, 130, 100, 0); 581 if(gameState == STATE_PRESSED_GAME_OVER) 582 al_draw_bitmap(game_over, 130, 100, 0); 583 if(gameState == STATE_ABRIGO) 584 al_draw_bitmap(abrigo, 10, 50, 0); 585 if(gameState == STATE_PRESSED_SONO_DESCANSA_OU_CORRE) 586 al_draw_bitmap(planta, 130, 100, 0); 587 if(gameState == STATE_PRESSED_SONO_CORRE) 588 al_draw_bitmap(correndo, 130, 100, 0); 589 if(gameState == STATE_PRESSED_SONO_DESCANSA) 590 al_draw_bitmap(descansando, 130, 100, 0); 591 if(gameState == STATE_PRESSED_CAI_BURACO_AJUDA) 592 al_draw_bitmap(correndo, 130, 100, 0); 593 if(gameState == STATE_PRESSED_CAI_BURACO_CAVANDO) 594 al_draw_bitmap(descansando, 130, 100, 0); 595 if(gameState == STATE_PRESSED_CAI_BURACO_CORRE) 596 al_draw_bitmap(correndo, 130, 100, 0); 597 if(gameState == STATE_PRESSED_CAI_BURACO_CORRE_RAPIDO) 598 al_draw_bitmap(descansando, 130, 100, 0); 599 if(gameState == STATE_PRESSED_CAI_BURACO_CAVANDO_CORRE) 600 al_draw_bitmap(correndo, 130, 100, 0); 601 if(gameState == STATE_PRESSED_CAI_BURACO_CAVANDO_AGUA) 602 al_draw_bitmap(bebendo_agua, 130, 100, 0); 603 al_flip_display(); 604 redraw = false; 605 } 606 607 } 608 609 al_destroy_bitmap(apresentacao); 610 al_destroy_bitmap(pula_ignora); 611 al_destroy_bitmap(pulando); 612 al_destroy_bitmap(no_buraco); 613 al_destroy_bitmap(correndo); 614 al_destroy_bitmap(descansando); 615 al_destroy_bitmap(bebendo_agua); 616 al_destroy_bitmap(abrigo); 617 al_destroy_bitmap(game_over); 618 al_destroy_bitmap(pedindo_ajuda); 619 al_destroy_bitmap(planta); 620 al_destroy_bitmap(saiu_buraco); 621 al_destroy_font(font); 622 al_destroy_display(disp); 623 al_destroy_audio_stream(music); 624 al_destroy_timer(timer); 625 al_destroy_event_queue(queue); 626 627 return 0; 628}

Can anyone help me? So many thanks

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

Your compiler isn't picking up your includes. It's either because it doesn't look where they are, or you haven't told it to look there.

The proper way to install a library is to a different directory than your compiler and then use compiler flags to tell it where it is.

-I c:\path\to\includes

You will need to do the same with your linker.

-L c:\path\to\lib

Do both of those on the command line before you link your libraries.

mayna azevedo
Member #20,077
May 2021

Wow, it worked. Thank you.

Go to: