elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿Puedo hacer esto?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Puedo hacer esto?  (Leído 3,131 veces)
ankora45

Desconectado Desconectado

Mensajes: 52



Ver Perfil
¿Puedo hacer esto?
« en: 20 Julio 2013, 10:17 am »

Hola de nuevo. Veran
[spoiler]
Código
  1. #include <allegro.h>
  2.  
  3. int main()
  4. {
  5.    allegro_init();
  6.    install_mouse();
  7.    install_keyboard();
  8.    set_color_depth(32);
  9.    set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0);
  10.  
  11.    BITMAP *buffer = create_bitmap(640, 480);
  12.    BITMAP *FONDO = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/FONDO.bmp", NULL);
  13.    BITMAP *FONDO1 = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/FONDO1.bmp", NULL);
  14.    BITMAP *FONDO2 = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/FONDO2.bmp", NULL);
  15.    BITMAP *cursor = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/cursor3.bmp", NULL);
  16.    SAMPLE *musica;
  17.  
  18.    if (install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, NULL) != 0) { allegro_message("Error: inicializando sistema de sonido\n%s\n", allegro_error); return 1; }
  19.    set_volume(100, 100);
  20.    musica = load_sample("C://users/alvaro/Desktop/menu/menu/menu/audio/musica.wav");
  21.    play_sample(musica,200,150,1000,0);
  22.  
  23.  
  24.    bool salida = false;
  25.    while(!salida)
  26.        {
  27.           if(mouse_x > 13 && mouse_x < 345 &&
  28.              mouse_y > 287 && mouse_y < 342)
  29.              {
  30.                  blit(FONDO1,buffer,0,0,0,0,640,480);
  31.                  if(mouse_b & 1)
  32.                  {
  33.                     salida = true; // como podria poner ahi que se imprimiera sobre la pantalla una nueva iagen, otro menu.
  34.                  }
  35.              }
  36.            else if(mouse_x > 19 && mouse_x < 231 &&
  37.              mouse_y > 391 && mouse_y < 463 )
  38.              {
  39.                  blit(FONDO2,buffer,0,0,0,0,640,480);
  40.                  if(mouse_b & 1)
  41.                  {
  42.                      salida = true;
  43.                  }
  44.              }
  45.            else blit(FONDO,buffer,0,0,0,0,640,480);
  46.            masked_blit(cursor,buffer,0,0,mouse_x,mouse_y,40,34);
  47.            blit(buffer,screen,0,0,0,0,640,480);
  48.        }
  49.  
  50.    destroy_bitmap(buffer);
  51.  
  52.    return 0;
  53. }
  54. END_OF_MAIN();
  55.  
[/spoiler]

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
  1. #include <allegro.h>
  2.  
  3. int main()
  4. {
  5.    allegro_init();
  6.    install_mouse();
  7.    install_keyboard();
  8.    set_color_depth(32);
  9.    set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0);
  10.  
  11.    BITMAP *buffer = create_bitmap(640, 480);
  12.    BITMAP *FONDO = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/FONDO.bmp", NULL);
  13.    BITMAP *FONDO1 = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/FONDO1.bmp", NULL);
  14.    BITMAP *FONDO2 = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/FONDO2.bmp", NULL);
  15.    BITMAP *cursor = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/cursor3.bmp", NULL);
  16.    BITMAP *comenzar = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/comenzar.bmp", NULL);
  17.    BITMAP *comenzar1 = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/comenzar1.bmp", NULL);
  18.    BITMAP *comenzar2 = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/comenzar2.bmp", NULL);
  19.    BITMAP *comenzar3 = load_bitmap("C://users/alvaro/Desktop/menu/menu/menu/imagenes/comenzar3.bmp", NULL);
  20.    SAMPLE *musica;
  21.  
  22.    if (install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, NULL) != 0) { allegro_message("Error: inicializando sistema de sonido\n%s\n", allegro_error); return 1; }
  23.    set_volume(100, 100);
  24.    musica = load_sample("C://users/alvaro/Desktop/menu/menu/menu/audio/musica.wav");
  25.    play_sample(musica,200,150,1000,0);
  26.  
  27.  
  28.    bool salida = false;
  29.    while(!salida)
  30.        {
  31.           if(mouse_x > 13 && mouse_x < 345 &&
  32.              mouse_y > 287 && mouse_y < 342)
  33.              {
  34.                  blit(FONDO1,buffer,0,0,0,0,640,480);
  35.                  if(mouse_b & 1)
  36.                  {
  37.                      if(mouse_x > 9 && mouse_x < 222 &&
  38.                      mouse_y > 365 && mouse_y < 442 )
  39.                      {
  40.                          blit(comenzar1,buffer,0,0,0,0,640,480);
  41.                          if(mouse_b & 1)
  42.                          {
  43.                              salida = true;
  44.                          }
  45.                      }
  46.  
  47.                      else if(mouse_x > 294 && mouse_x < 627 &&
  48.                      mouse_y > 372 && mouse_y < 435 )
  49.                      {
  50.                          blit(comenzar2,buffer,0,0,0,0,640,480);
  51.                          if(mouse_b & 1)
  52.                          {
  53.                              salida = true;
  54.                          }
  55.                      }
  56.  
  57.                      else if(mouse_x > 376 && mouse_x < 514 &&
  58.                      mouse_y > 31 && mouse_y < 90 )
  59.                      {
  60.                          blit(comenzar3,buffer,0,0,0,0,640,480);
  61.                          if(mouse_b & 1)
  62.                          {
  63.                              salida = true;
  64.                          }
  65.                      }
  66.  
  67.                      else blit(comenzar,buffer,0,0,0,0,640,480);
  68.                  }
  69.              }
  70.            else if(mouse_x > 19 && mouse_x < 231 &&
  71.              mouse_y > 391 && mouse_y < 463 )
  72.              {
  73.                  blit(FONDO2,buffer,0,0,0,0,640,480);
  74.                  if(mouse_b & 1)
  75.                  {
  76.                      salida = true;
  77.                  }
  78.              }
  79.            else blit(FONDO,buffer,0,0,0,0,640,480);
  80.            masked_blit(cursor,buffer,0,0,mouse_x,mouse_y,40,34);
  81.            blit(buffer,screen,0,0,0,0,640,480);
  82.        }
  83.  
  84.    destroy_bitmap(buffer);
  85.  
  86.    return 0;
  87. }
  88. END_OF_MAIN();
  89.  
[/spoiler]

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 :P si alguien sabe como puedo hacerlo o alguna funcion para hacerlo que me lo diga. Gracias


En línea

Hay dos cosas infinitas en este mundo, el universo y la estupidez humana, y de la primera no estoy muy seguro
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: ¿Puedo hacer esto?
« Respuesta #1 en: 20 Julio 2013, 12:25 pm »

El boton derecho se hace con mouse_b & 2. Ademas tienes que poner un descanso en el bucle rest(100).

Aparte de eso, que error te da.


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
ankora45

Desconectado Desconectado

Mensajes: 52



Ver Perfil
Re: ¿Puedo hacer esto?
« Respuesta #2 en: 20 Julio 2013, 13:03 pm »

Gracias por contestar, el error que me da es el siguiente:

this aplication has requested the runtime to terminate it in an unusual way
En línea

Hay dos cosas infinitas en este mundo, el universo y la estupidez humana, y de la primera no estoy muy seguro
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: ¿Puedo hacer esto?
« Respuesta #3 en: 20 Julio 2013, 21:11 pm »

Ah que es un error de ejecución... Pues entonces, comprueba si estan todas las imagenes.

Por cierto, no tienes que poner la ruta entera (tampoco es recomendable). Si la imagen está en la misma carpeta que el ejecutable te basta con poner el nombre:

Código
  1. FONDO = load_bitmap("FONDO.bmp", NULL);

Si está en una subcarpeta, puedes hacerlo asi:

Código
  1. FONDO = load_bitmap("./imagenes/FONDO.bmp", NULL);
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
ankora45

Desconectado Desconectado

Mensajes: 52



Ver Perfil
Re: ¿Puedo hacer esto?
« Respuesta #4 en: 22 Julio 2013, 16:01 pm »

Aver, sigue sin ir, lo unico que quiero es que cuando pulse sobre comenzar se dirija hacia otra imagen y deje de mostrarse esa, pero me da error. he intentado borrar el buffer pero tampoco funciona
En línea

Hay dos cosas infinitas en este mundo, el universo y la estupidez humana, y de la primera no estoy muy seguro
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: ¿Puedo hacer esto?
« Respuesta #5 en: 22 Julio 2013, 16:08 pm »

Aver, sigue sin ir, lo unico que quiero es que cuando pulse sobre comenzar se dirija hacia otra imagen y deje de mostrarse esa, pero me da error. he intentado borrar el buffer pero tampoco funciona
Repito, comprueba los punteros:

Código
  1. if (!FONDO){ allegro_message("Error al cargar el fondo"); exit(1); }
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
ankora45

Desconectado Desconectado

Mensajes: 52



Ver Perfil
Re: ¿Puedo hacer esto?
« Respuesta #6 en: 22 Julio 2013, 16:59 pm »

efectivamente, error al cargar el fondo. ¿que puedo hacer?
En línea

Hay dos cosas infinitas en este mundo, el universo y la estupidez humana, y de la primera no estoy muy seguro
Shout

Desconectado Desconectado

Mensajes: 191


Acid


Ver Perfil
Re: ¿Puedo hacer esto?
« Respuesta #7 en: 23 Julio 2013, 12:44 pm »

Comprueba si tu programa tiene permisos para acceder al archivo.
También tienes que estar seguro de que existe
En línea

I'll bring you death and pestilence, I'll bring you down on my own
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Puedo o no hacer esto?
PHP
XXXXXX 9 3,932 Último mensaje 15 Junio 2010, 05:22 am
por [u]nsigned
puedo hacer esto para hacer una encuesta
Sugerencias y dudas sobre el Foro
linux1 3 3,889 Último mensaje 29 Junio 2010, 23:05 pm
por Embusterillo de bolsillo
Esto lo puedo hacer con Dorks?
Desarrollo Web
0xFer 2 4,068 Último mensaje 21 Julio 2017, 19:41 pm
por #!drvy
Puedo hacer esto con JAVA?
Java
Dacan 3 2,764 Último mensaje 4 Septiembre 2017, 01:46 am
por ivancea96
Puedo hacer esto con una pagina o sitio web???
Dudas Generales
Rebelion 3 2,645 Último mensaje 3 Diciembre 2020, 07:01 am
por macord
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines