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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿Como Mover Objetos Con El Mouse (allegro en codeblocks)?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Como Mover Objetos Con El Mouse (allegro en codeblocks)?  (Leído 3,076 veces)
MaUrOx970909

Desconectado Desconectado

Mensajes: 1


Ver Perfil
¿Como Mover Objetos Con El Mouse (allegro en codeblocks)?
« en: 25 Octubre 2017, 08:49 am »

Como Lo Dice La Pregunta Quisiera Saber Si Alguien Me Podria Ayudar Orientandome De Como Arrastrar Objetos Con El Mouse En Un Aplicacion Grafica Con Allegro En Codeblocks.

Para Ser Un Poco Mas Especifico Necesito Crear El Juego De Las Torres De Hanoi Y No Se Como Mover Objetos Con El Mouse.

O Si Alguien Me Puede Facilitar Un Codigo Para Guiarme Se Lo Agradeceria Mucho.

Muchas Gracias De Antemano...


En línea

Maurice_Lupin


Desconectado Desconectado

Mensajes: 356

GPS


Ver Perfil WWW
Re: ¿Como Mover Objetos Con El Mouse (allegro en codeblocks)?
« Respuesta #1 en: 25 Octubre 2017, 18:08 pm »

Hola MaUrOx970909, hace años que no programo con allegro, si mal no lo recuerdo la librería Allegro trae ejemplos para lo que buscas.

En mis archivos encontré un ejm que mueve una imagen de un roedor en la posición del mouse.
Recuerdo que me basé en los ejemplos de la librería y que funcionaba bien, a simple viste parece que hay cosas innecesarias.

Utilizo la técnica del doble buffer, es decir primero pintas en un bitmap el fondo y la rata, luego pintas el bitmap en pantalla; esto evita que veamos un feo parpadeo los humanos las ratas no sé  :xD

Acerca de lo que intentas te faltaría la interacción del mouse sobre objetos. Este código es antiguo pero una buena base, a lo mejor tendrás que reemplazar algunas funciones.

Código
  1. #include<allegro.h>
  2. #include<iostream>
  3. using namespace std;
  4.  
  5. char buf[256];
  6. BITMAP *background;
  7. BITMAP *sprite;
  8. BITMAP *buffer;
  9. BITMAP *alpha;
  10.  
  11. int main(int argc, char *argv[]) {
  12. int x, y, c, a1,a2,a3;
  13.  
  14. if (allegro_init() != 0) return 1;
  15. install_keyboard();
  16. install_timer();
  17. install_mouse();    
  18. set_color_depth(32);
  19. set_gfx_mode(GFX_AUTODETECT_WINDOWED,800,600,0,0);
  20. set_window_title( "Rata voladora" );
  21.  
  22. /* cargando imagen de fondo */
  23. replace_filename(buf, argv[0], "fondo.bmp", sizeof(buf));
  24. background = load_bitmap(buf, NULL);
  25. if (!background) {
  26.     set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
  27.     allegro_message("Error reading %s!\n", buf);
  28.     return 1;
  29. }
  30.  
  31. PALETTE paleta;
  32. replace_filename(buf, argv[0], "rata.pcx", sizeof(buf));
  33. alpha = load_bitmap(buf, paleta);
  34. if (!alpha) {
  35.    set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
  36.    allegro_message("Error reading %s!\n", buf);
  37.    return 1;
  38. }
  39.  
  40. set_palette(paleta);
  41.  
  42. sprite = create_bitmap(alpha->w, alpha->h);
  43.  
  44. buffer = create_bitmap(SCREEN_W, SCREEN_H);
  45.  
  46. /* scale the background image to be the same size as the screen */
  47. stretch_blit(background, buffer, 0, 0, background->w, background->h,
  48. 0, 0, SCREEN_W, SCREEN_H);
  49.  
  50.  
  51. destroy_bitmap(background);
  52. background = create_bitmap(SCREEN_W, SCREEN_H);
  53. blit(buffer, background, 0, 0, 0, 0, SCREEN_W, SCREEN_H);
  54.  
  55. while (!keypressed()) { // sale del juego cuando presionas un tecla
  56.    x = mouse_x - sprite->w/2;
  57.    y = mouse_y - sprite->h/2;  
  58.    draw_sprite(buffer, background, 0,0); // dibuja el fondo
  59.    draw_sprite(buffer, alpha, x,y); // dibuja la rata en la posicion del mouse
  60.    vsync();
  61.    blit(buffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H); // vuelca el buffer en pantalla
  62. }
  63. readkey();
  64. //
  65. destroy_bitmap(alpha);
  66. destroy_bitmap(background);
  67. destroy_bitmap(sprite);
  68. allegro_exit();
  69. return 0;
  70. }
  71. END_OF_MAIN();
  72.  


En línea

Un error se comete al equivocarse.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Guia Como hacer para mover el mouse y hacer click
Programación Visual Basic
gmf_321 7 8,683 Último mensaje 4 Enero 2007, 18:39 pm
por Sancho.Mazorka
Manual Como hacer para mover el mouse y hacer click en vb
Programación Visual Basic
gmf_321 1 11,698 Último mensaje 24 Septiembre 2006, 17:41 pm
por Dahmer
Clickear sin mover mouse « 1 2 3 4 »
Programación Visual Basic
BahiereTTi 33 16,316 Último mensaje 28 Agosto 2011, 21:50 pm
por BlackZeroX
mover imagen con el mouse
Java
bengy 6 8,375 Último mensaje 16 Septiembre 2012, 16:08 pm
por bengy
Como hacer un transform al mover el mouse fuera del elem. con un selector css3
Desarrollo Web
Drakaris 2 2,996 Último mensaje 9 Octubre 2017, 22:23 pm
por Drakaris
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines