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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿Puedo hacer esto?
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Puedo hacer esto?  (Leído 2,850 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,672 Ú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,557 Último mensaje 29 Junio 2010, 23:05 pm
por Embusterillo de bolsillo
Esto lo puedo hacer con Dorks?
Desarrollo Web
0xFer 2 3,625 Último mensaje 21 Julio 2017, 19:41 pm
por #!drvy
Puedo hacer esto con JAVA?
Java
Dacan 3 2,572 Último mensaje 4 Septiembre 2017, 01:46 am
por ivancea96
Puedo hacer esto con una pagina o sitio web???
Dudas Generales
Rebelion 3 2,385 Último mensaje 3 Diciembre 2020, 07:01 am
por macord
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines