• Jueves 28 de Marzo de 2024, 10:17

Autor Tema:  Imagen Como Cursor Del Raton  (Leído 2162 veces)

palpatine16

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
    • http://www.desarrollo-web.es.vg ; http://www.elbosquenegro.tk ; http:/
Imagen Como Cursor Del Raton
« en: Domingo 5 de Marzo de 2006, 19:52 »
0
wenas!!! yo quiero poner una imagen como cursor del raton, pero el problema esta en que parpadea y desaparece si no lo muevo, como se soluciona esto???

el codigo hasta ahora es:
Código: Text
  1.  
  2.  
  3. #include <allegro.h>
  4.  
  5. BITMAP*buf;
  6. BITMAP*fondo;
  7. BITMAP*nave;
  8.  
  9. int x,y;
  10.  
  11. void init(){
  12.      allegro_init();
  13.      set_color_depth(24);
  14.      set_window_title("Star Wars Invaders v. 1.0");
  15.      set_gfx_mode(GFX_AUTODETECT_WINDOWED,320,240,0,0);
  16.      install_timer();
  17.      install_keyboard();
  18.      install_mouse();  
  19. }
  20. void juego_raton(){
  21.      show_mouse(screen);
  22.      buf=create_bitmap(320,240);
  23.      fondo=load_bmp("fondo.bmp",0);
  24.      nave=load_bmp("nave.bmp",0);
  25.      set_mouse_range(0,0,320,240);
  26.      set_mouse_speed(2,2);
  27.      set_mouse_sprite(nave);
  28.      while(!key[KEY_ESC]){
  29.                           blit(buf, screen,0,0,0,0,320,240);
  30.                           clear(buf);
  31.                           draw_sprite(buf, fondo,0,0);
  32.       }
  33.  
  34. }
  35. void juego_teclado(){
  36.      x=140;
  37.      y=195;
  38.      char*w="x";
  39.      char*z="y";
  40.      buf=create_bitmap(320,240);
  41.      fondo=load_bmp("fondo.bmp",0);
  42.      nave=load_bmp("nave.bmp",0);
  43.      
  44.      
  45.      while(!key[KEY_ESC]){
  46.                          
  47.                           //movimiento de la nave
  48.                           if(key[KEY_LEFT]){
  49.                                             x=x-4;
  50.                                             }
  51.                           if(key[KEY_RIGHT]){
  52.                                              x=x+4;
  53.                                              }
  54.                           if(key[KEY_UP]){
  55.                                           y=y-4;
  56.                                           }
  57.                           if(key[KEY_DOWN]){
  58.                                             y=y+4;
  59.                                             }
  60.                                            
  61.                            //Universo donuts                
  62.                           if(x<=0){
  63.                                    x=0;
  64.                                    }
  65.                           if(x>=280){
  66.                                      x=280;
  67.                                      }
  68.                           if(y<=0){
  69.                                    y=0;
  70.                                    }
  71.                           if(y>=195){
  72.                                      y=195;
  73.                                      }
  74.                           blit(buf, screen,0,0,0,0,320,240);
  75.                           clear(buf);
  76.                           draw_sprite(buf, fondo,0,0);
  77.                           draw_sprite(buf, nave, x,y);
  78.                          
  79.      }
  80.                           textout_ex(screen, font,10, 230, makecol(255,255,255),-1,"%s,%d",w,x);          
  81. }
  82.  
  83. void intro(){
  84.      textout_ex(screen, font, "Star Wars invaders", 90, 100, makecol(255, 255, 255), -1);
  85.      textout_ex(screen, font, "Selecciona teclado (t) o raton (r)", 70, 170, makecol(255, 255, 255), -1);
  86.      textout_ex(screen, font, "Para salir pulsa Esc", 87, 190, makecol(255, 255, 255), -1);
  87.      while(!key[KEY_ESC]){
  88.                           if(key[KEY_T]){
  89.                                              juego_teclado();                    
  90.                                              }
  91.                           if(key[KEY_R]){
  92.                                              juego_raton();                    
  93.                                              }                        
  94.                           }
  95.      
  96.      
  97. }
  98.  
  99.  
  100. int main(){
  101.     init();
  102.     intro();
  103. }
  104.  
  105. END_OF_MAIN()
  106.  
  107.  
  108.  

El teclado funciona bien pero el raton parpadea. Y otra cosa, hay alguna forma de centrar el texto en la pantalla???? porque acerlo a ojo...

Y otra cosa más, como puedo poner las coordenadas en la que se encuentra la nave tanto en teclado como en ratón??? porque lo probe con textprintf(....) pero parpadeaba..

saludos

Gracias
Saludos de vuestro emperador, XD

Si alguien quiere una cuenta de gmail que avise (casi 3gb de correo)

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Imagen Como Cursor Del Raton
« Respuesta #1 en: Lunes 6 de Marzo de 2006, 20:24 »
0
Intenta mostrar el raton después de dibujar en la pantalla (blit(buffer blablabla)),
esto lo puedes hacer antes de llamar la funcion blit, haces un
Código: Text
  1.  
  2. show_mouse(null);
  3.  
  4.  

y despues del blit
Código: Text
  1.  
  2. show_mouse(screen);
  3.  
  4.  
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.