Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro 5]Problem z wyświetlaniem grafiki

Ostatnio zmodyfikowano 2014-06-21 21:09
Autor Wiadomość
SeaMonster131
» 2014-06-21 13:22:18
A do czego ci ten ekran jest potrzebny hm? Normalnie wyświetlasz:

C/C++
class CObj
{
    ALLEGRO_BITMAP * IMG;
   
    CObj()
    {
        IMG = al_load_bitmap(..);
    }
   
    void draw()
    {
        al_draw_bitmap( IMG,..);
    }
   
};

Ważne tylko, żeby wywoływać al_load_bitmap() itp. po użyciu al_init_image_addon().
P-112450
Loodwin
Temat założony przez niniejszego użytkownika
» 2014-06-21 13:26:49
No właśnie robię tak samo, ale nadal pojawia się okienko, że program przestał działać. Może wstawię cały kod, może okaże się, że jakiś błąd robię gdzie indziej:
C/C++
#include <allegro5/allegro.h>
class ship
{
private:
    float x, y;
    int v;
    ALLEGRO_BITMAP * graphic;
   
public:
    ship();
    void draw()
    {
        al_draw_bitmap( graphic, x, y, NULL );
    }
   
    void move( int mx, int my )
    {
        if( mx > x ) x += v;
       
        if( mx < x ) x -=( 0.75 * v );
       
        if( my > y ) y +=( 0.8 * v );
       
        if( my < y ) y -=( 0.8 * v );
       
    }
};

ship::ship()
{
    x = 200;
    y = 200;
    graphic = al_load_bitmap( "graphic/ship.bmp" );
}

int main()
{
    al_init();
    al_install_mouse();
    al_install_keyboard();
    ALLEGRO_MOUSE_STATE mouse_state;
    ALLEGRO_KEYBOARD_STATE key_state;
   
    ALLEGRO_DISPLAY * display;
    display = al_create_display( 640, 480 );
    al_set_window_title( display, "It's flying!" );
   
   
    ship statek;
   
    while( !al_key_down( & key_state, ALLEGRO_KEY_ESCAPE ) )
    {
        al_get_keyboard_state( & key_state );
        al_get_mouse_state( & mouse_state );
       
        al_set_target_backbuffer( display );
        al_clear_to_color( al_map_rgb( 255, 255, 255 ) );
       
        statek.move( mouse_state.x, mouse_state.y );
       
        statek.draw();
       
        al_flip_display();
    }
    return 0;
}
P-112452
SeaMonster131
» 2014-06-21 14:13:51
Ważne tylko, żeby wywoływać al_load_bitmap() itp. po użyciu al_init_image_addon().

Linijka
al_set_target_backbuffer( display );
 jest zbędna.
P-112457
Loodwin
Temat założony przez niniejszego użytkownika
» 2014-06-21 14:20:56
Narazie nie mogę sprawdzić czy zadziała, bo musiałem wyjść z domu (piszę z telefonu), ale myślę, że to co napisałeś ma sens. W każdym kodzie jaki widziałem sprawdzane było czy udało się załadować plik, a ja zawsze to ignorowałem. Jeśli okaże się, że to o to chodziło to będę miał nauczkę.
P-112458
Loodwin
Temat założony przez niniejszego użytkownika
» 2014-06-21 21:09:17
Dzięki bardzo SeaMonster. Zadziałało dodanie najpierw
#include <allegro5/allegro_image.h>
 a później
al_init_image_addon();

Problem rozwiązany, temat zamykam.
P-112478
1 « 2 »
Poprzednia strona Strona 2 z 2