Warum funzt das net?? - Allegro



  • Hi Leute. Ich habe mir von ein paar Tagen Allegro runtergeladen. Ich benutze die Lib mit Dev-C++.

    Hier mein Projekt:

    #include <allegro.h>
    
    void get_v3d_dat(int x, int y, int z, int c, V3D *v)
        {
        v->x = x;
        v->y = y;
        v->z = z;
        v->c = c;
        }
    
    int main() 
    {
    allegro_init();
    V3D v[4];
    char mp[100];
    BITMAP *bmp;
    
    set_color_depth(16);
    set_gfx_mode(GFX_SAFE, 800, 600, 0, 0);
    install_keyboard();
    
    install_mouse();
    
    show_mouse(screen);
    
    get_v3d_dat(100,100,10,255,&v[0]);
    get_v3d_dat(200,100,10,255,&v[1]);
    get_v3d_dat(200,200,10,255,&v[2]);
    get_v3d_dat(100,200,10,255,&v[3]);
    
    //polygon3d(screen,POLYTYPE_FLAT,NULL,4,&v);
    
    bmp = create_bitmap(520, 500);    // make a bitmap in RAM
    clear_bitmap(bmp);                        // zero the memory bitmap
    quad3d(bmp,POLYTYPE_FLAT,bmp,&v[0],&v[1],&v[2],&v[3]);
    blit(bmp, screen, 0, 0, 50, 50, 520, 500);  // copy it to the screen
    
    while (!keypressed())
        {
        poll_mouse();
        sprintf (mp,"%4.0d %4.0d",mouse_x,mouse_y);
        textout(screen, font, mp, 1, 1, 255);
        }
    
    allegro_exit();
    return 0;
    }     
    
    // Some Allegro magic to deal with WinMain().
    END_OF_MAIN();
    

    Das kann ich soweit problemlos kompilieren und auch ausführen. Das Programm stürzt auch nich ab oder so. Es wird nur irgendwie das Polygen ( quad3d... ) nich dargestellt. Die Maus wird ganz normal angezeigt, und die Position wo der Mauszeiger ist wird auch normal angezeigt, was ja bedeutet, das er die Stelle wo das quad3d... steht nicht überspringt, oder täusche ich mich da? Wie kann ich das anzeigen?

    Würde mich auf "rasche" antworten freuen...
    danke
    @ Dago



  • hi

    schau dir mal das tutorial hier an, sieht vernünftig aus
    http://www.niksula.cs.hut.fi/~tparvine/allegro3d/

    denke, deine punkte in der funktion get_v3d_dat stimmen nicht.
    außerdem solltest du dein bitmap nicht clearen, wenn du es noch brauchst..

    hier noch ein paar hinweise zu den funktionen,
    aber vielleicht schaut ja noch ein allegro crack hier rein (*schiel*)



  • Hm. Es funktioniert bei mir immernoch nicht, obwohl ich das Tutorial benutzt habe. Die Funtkion get_v3d_dat liefert auf jeden Fall die richtigen Werte (zumindest die die ich halt eingegeben habe). Vielleicht liegt es auch daran, dass die Punkte

    /*
    get_v3d_dat(100,100,10,255,&v[0]); 
    get_v3d_dat(200,100,10,255,&v[1]); 
    get_v3d_dat(200,200,10,255,&v[2]); 
    get_v3d_dat(100,200,10,255,&v[3]); 
    */
    
    {100,100,10},
    {200,100,10},
    {200,200,10},
    {100,200,10}
    

    gar nicht angezeigt werden können, weil sie irgendwie außerhalb des Bildschirms liegen.


Anmelden zum Antworten