Allegro: ein item anklicken - so gehts ;)



  • Hi 😉
    ich weis nicht was ihr von meinen post haltet, aber ich hab wieder
    was für anfänger geschrieben:

    heute: objeckte anklicken

    da das ganze nen bissel durcheinander ist hab ich mal gedacht ich schick euch ein kleines sample...
    http://www.file-upload.net/download-3489535/allegro-demo.rar.html
    das ist der schnippsel dazu:

    BITMAP *buffer; // buffer
    BITMAP *Player; // mouse
    BITMAP *key_1;  // item
    ...
    int key_collision(BITMAP* key_1,int key_x, int key_y, BITMAP* Player, int x,int y)
    {
     if(key_x>=(x+Player->w) || key_y>=(y+Player->h) || x>=(key_x+key_1->w) || 
     y>=(key_y+key_1->h)) return 0;
     else return -1;
    }                      // collisionserkennung
    ///
    int main() 
    {
     int key_x = 400;
     int key_y = 400;
    
     allegro_init();
     set_color_depth(32);
     set_gfx_mode(GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0); 
     set_window_title("sample");
     install_keyboard();
     install_mouse();
    
     buffer = create_bitmap(SCREEN_W, SCREEN_H);
     Player = load_bitmap("cursor.bmp",NULL);  
     key_1 = load_bitmap("key.bmp", NULL);
    
     while(!key[KEY_ESC])
     {
      clear(buffer);              
    
      draw_sprite(buffer,key_1,key_x,key_y);
    
      draw_sprite(buffer,Player,mouse_x,mouse_y);
    
      blit(buffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H);
    
      //////////////////////////////////////////////////////////////////
    
      if(key_collision(key_1,key_x,key_y,Player,mouse_x,mouse_y)) // wenn maus über x,y ist ... 
      {
       if(mouse_b&1) // ... und geklickt wird dann: 
       {   
        textprintf_ex(screen,font,350,280,makecol(255,0,0),-1,"Key found !");
        key_x = 0;
        key_y = 0; 
       }
      }
     //////////////////////////////////////////////////////////////////// 
     }
    }
    
    //es lebe google und eigende logik
    

    ich hoffe ich konnte wieder mal weiter helfen 🕶

    @spieleman 😃 - guckmal solche grafik kann man mit blender machen XD
    *lol*



  • upps... hab ich vergessen:

    ganz oben muss noch

    #include<allegro.h>
    

    und gannz zum schluss muss noch

    END_OF_MAIN();
    

    stehen:



  • Süß 🤡



  • auch hier ein fettes danke


Anmelden zum Antworten