[spoiler]
Código
[/spoiler]
#include <allegro.h> int main() { allegro_init(); install_mouse(); install_keyboard(); set_color_depth(32); set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0); BITMAP *buffer = create_bitmap(640, 480); BITMAP *FONDO = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/FONDO.bmp", NULL); BITMAP *FONDO1 = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/FONDO1.bmp", NULL); BITMAP *FONDO2 = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/FONDO2.bmp", NULL); BITMAP *cursor = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/cursor3.bmp", NULL); SAMPLE *musica; if (install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, NULL) != 0) { allegro_message("Error: inicializando sistema de sonido\n%s\n", allegro_error); return 1; } set_volume(100, 100); musica = load_sample("C://users/alvaro/Desktop/menu/menu/menu/audio/musica.wav"); play_sample(musica,200,150,1000,0); bool salida = false; while(!salida) { if(mouse_x > 13 && mouse_x < 345 && mouse_y > 287 && mouse_y < 342) { blit(FONDO1,buffer,0,0,0,0,640,480); if(mouse_b & 1) { salida = true; // como podria poner ahi que se imprimiera sobre la pantalla una nueva iagen, otro menu. } } else if(mouse_x > 19 && mouse_x < 231 && mouse_y > 391 && mouse_y < 463 ) { blit(FONDO2,buffer,0,0,0,0,640,480); if(mouse_b & 1) { salida = true; } } else blit(FONDO,buffer,0,0,0,0,640,480); masked_blit(cursor,buffer,0,0,mouse_x,mouse_y,40,34); blit(buffer,screen,0,0,0,0,640,480); } destroy_bitmap(buffer); return 0; } END_OF_MAIN();
la duda es que he intentado imprimir otra imagen cuando se pulsa click derecho sobre unas coordenadas dadas en el area de un rectangulo sin embargo me tira un error. en el codigo de arriba no he puesto la imagen y va bien y en este:
[spoiler]
Código
[/spoiler]
#include <allegro.h> int main() { allegro_init(); install_mouse(); install_keyboard(); set_color_depth(32); set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0); BITMAP *buffer = create_bitmap(640, 480); BITMAP *FONDO = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/FONDO.bmp", NULL); BITMAP *FONDO1 = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/FONDO1.bmp", NULL); BITMAP *FONDO2 = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/FONDO2.bmp", NULL); BITMAP *cursor = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/cursor3.bmp", NULL); BITMAP *comenzar = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/comenzar.bmp", NULL); BITMAP *comenzar1 = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/comenzar1.bmp", NULL); BITMAP *comenzar2 = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/comenzar2.bmp", NULL); BITMAP *comenzar3 = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/comenzar3.bmp", NULL); SAMPLE *musica; if (install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, NULL) != 0) { allegro_message("Error: inicializando sistema de sonido\n%s\n", allegro_error); return 1; } set_volume(100, 100); musica = load_sample("C://users/alvaro/Desktop/menu/menu/menu/audio/musica.wav"); play_sample(musica,200,150,1000,0); bool salida = false; while(!salida) { if(mouse_x > 13 && mouse_x < 345 && mouse_y > 287 && mouse_y < 342) { blit(FONDO1,buffer,0,0,0,0,640,480); if(mouse_b & 1) { if(mouse_x > 9 && mouse_x < 222 && mouse_y > 365 && mouse_y < 442 ) { blit(comenzar1,buffer,0,0,0,0,640,480); if(mouse_b & 1) { salida = true; } } else if(mouse_x > 294 && mouse_x < 627 && mouse_y > 372 && mouse_y < 435 ) { blit(comenzar2,buffer,0,0,0,0,640,480); if(mouse_b & 1) { salida = true; } } else if(mouse_x > 376 && mouse_x < 514 && mouse_y > 31 && mouse_y < 90 ) { blit(comenzar3,buffer,0,0,0,0,640,480); if(mouse_b & 1) { salida = true; } } else blit(comenzar,buffer,0,0,0,0,640,480); } } else if(mouse_x > 19 && mouse_x < 231 && mouse_y > 391 && mouse_y < 463 ) { blit(FONDO2,buffer,0,0,0,0,640,480); if(mouse_b & 1) { salida = true; } } else blit(FONDO,buffer,0,0,0,0,640,480); masked_blit(cursor,buffer,0,0,mouse_x,mouse_y,40,34); blit(buffer,screen,0,0,0,0,640,480); } destroy_bitmap(buffer); return 0; } END_OF_MAIN();
he intentado crear otro menu al darle click en las coordenadas dadas de comenzar pero no funciona. creo que la he liado mucho ahi jaja me lie hasta yo si alguien sabe como puedo hacerlo o alguna funcion para hacerlo que me lo diga. Gracias