Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Nouveau Membre du Club
    Inscrit en
    mai 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : mai 2009
    Messages : 62
    Points : 27
    Points
    27

    Par défaut [Allegro 5] Charger une image

    Bonjour,
    Je débute dans Allegro et mon casse-tête du jour est de lui faire manger une image ( en tant que crocodile ça ne devrait pas poser de problème )

    D'après ce que j'ai compris, il faut inclure l'addon image puis l'initialiser avant d'ouvrir une quelconque image à l'aide de al_load_bitmap .

    Cependant il arrive toujours à me pondre une erreur :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    #include<iostream>
    #include <allegro5/allegro.h>
    #include <allegro5\allegro_image.h>
    using namespace std; 
     
     
    const float FPS = 60;
    const int SCREEN_W = 640;
    const int SCREEN_H = 480;
    const int BOUNCER_SIZE = 32;
     
    int main(int argc, char **argv){
        ALLEGRO_DISPLAY *display = NULL;
        ALLEGRO_EVENT_QUEUE *event_queue = NULL;
        ALLEGRO_TIMER *timer = NULL;
        ALLEGRO_BITMAP *bmp = NULL;
     
        bool redraw = true;
     
    	// Init Allegro
        if(!al_init()) {
           cout << "failed to initialize allegro!" << endl;
           return -1;
        }
     
    	// Init Timer
        timer = al_create_timer(1.0 / FPS);
        if(!timer) {
           cout << "failed to create timer!" << endl;
           return -1;
        }
     
    	// Init Display
        display = al_create_display(SCREEN_W, SCREEN_H);
        if(!display) {
           cout << "failed to create display!" << endl;
           al_destroy_timer(timer);
           return -1;
        }
     
    	// Init Bitmap
     
     
    	 al_init_image_addon();
    	 /*
    	 if(!init_image){
    		cout << "Pas d'adddon image!" << endl;
    		al_destroy_bitmap(bmp);
    		return -1;
    	 }
     
    	/*
     
    	bmp = al_load_bitmap("bloc.bmp");
        if(!bmp){
    		cout << "Pas d'image!" << endl;
    		al_destroy_bitmap(bmp);
    		return -1;
    	}
    	*/
    	al_rest(2.0);
    	al_clear_to_color(al_map_rgb(255,255,255));
    	al_flip_display();
    	al_rest(2.0);
     
        return 0;
    }
    Je le redis : je suis sous Alegro 5, j'ai trouvé la solution pour les versions antérieures mais pas pour la petite dernière.

    Voilà ce que VS me pond :

    Debuts.obj : error LNK2019: symbole externe non résolu __imp__al_init_image_addon référencé dans la fonction _main
    1>C:\Users\Ant\Documents\Visual Studio 2010\Projects\Allegro - Debuts\Debug\Allegro - Debuts.exe : fatal error LNK1120: 1 externes non résolus
    Merci d'avance

  2. #2
    Membre actif Avatar de yetimothee
    Homme Profil pro Timothée
    Étudiant
    Inscrit en
    mai 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Nom : Homme Timothée
    Âge : 22
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2007
    Messages : 218
    Points : 177
    Points
    177

    Par défaut

    Salut, t'es sûr que ça fonctionne le '\' à la place du '/' :
    Code :
    #include <allegro5\allegro_image.h>
    Sinon, as tu bien lié allegro ET allegro_image dans ton projet ?

    Il ne me semble pas qu'il y ai d'erreurs dans le reste de ton code.

  3. #3
    Nouveau Membre du Club
    Inscrit en
    mai 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : mai 2009
    Messages : 62
    Points : 27
    Points
    27

    Par défaut

    Tiens j'avais pas remarqué l'histoire du \ et du /.
    La première ligne c'est moi qui l'aie écrite et la seconde c'est VStudio
    qui l'a générée. Les 2 marchent .

    RESOLU
    Comme je le pensais, c'était bien une histoire de link ( assez évident vu l'erreur qu'il me sort )

    Je faisais marcher Allegro avec "allegro-5.0.0-RC4-md.lib" de lié et ça marchait bien ... sauf l'addon image qui ne devait pas être lié.

    En trifouillant j'ai changé "allegro-5.0.0-RC4-md.lib" par un autre :"allegro-5.0.0-RC4-monolith-md.lib"
    Et ça marche.

  4. #4
    Membre actif Avatar de yetimothee
    Homme Profil pro Timothée
    Étudiant
    Inscrit en
    mai 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Nom : Homme Timothée
    Âge : 22
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2007
    Messages : 218
    Points : 177
    Points
    177

    Par défaut

    Ah oui tiens, le monolith fonctionne quelque soit les addons.

  5. #5
    Membre du Club

    Inscrit en
    octobre 2011
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 28
    Points : 43
    Points
    43

    Par défaut

    sous allegro 5, avec le meme listing que si dessus et en utilisant

    bmp = al_load_bitmap("bloc.bmp");
    if(!bmp){cout << "Pas d'image!" << endl;
    al_destroy_bitmap(bmp);
    return -1;
    etc...
    il affiche "pas d image" et refuse de telecharger l image , meme avec le chemin complet du fichier image

  6. #6
    Membre du Club

    Inscrit en
    octobre 2011
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 28
    Points : 43
    Points
    43

    Par défaut

    c est bon ça marche, y fallait juste une version plus recente de mingw...

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •