IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Allegro Discussion :

Peut-on fermer une image que l'on a affichée ?


Sujet :

Allegro

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 14
    Points : 6
    Points
    6
    Par défaut Peut-on fermer une image que l'on a affichée ?
    Bonjour,

    je code en C sur codeblocks avec allegro sur un petit projet d'un jeu de plateau.
    Il y a plusieurs menu dans l'application.
    Mon soucis est le suivant : j'ai créé un quadrillage servant de support de mon plateau dans lequel on peut se déplacer en restant appuyé sur le clic gauche. Mais lorsque je clique sur un bouton qui me permet de quitter et retourner au menu principal, ce même quadrillage est encore présent en 1er plan.
    Ma question est alors la suivante : comment fermer/faire disparaitre une image que l'on a enregistrée en mémoire et affichée ? J'ai cherché sur internet helas je n'ai trouvé aucune piste.

    Merci pour vos réponse,

    cordialment,

    Akiwhite

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Normalement, à chaque tour de la boucle principale, vous nettoyez l'écran pour y dessiner votre nouvelle image.
    En partant de se principe la (qui est la base dans ce genre d'application), vous pouvez ajouter un test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (menu) {
        drawMenu();
    } else {
        drawGrid();
    }
    Ainsi, la grille ne s'affiche que si vous n'êtes pas dans le menu. Par la suite, vous pouvez utiliser une énumération, pour suivre l'état de l'application (menu, jeu...).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Bonjour, merci pour ta solution, mais je pense qu'elle ne peut résoudre mon soucis car j'utiliste ca :
    Infos : J'ai une boucle dans le main qui me permet de voyager dans les menus 1, 2 et jeu (qui sont des fonctions qui renvoient le prochain menu a ouvrir). Ce qui se trouve ici est au début de la fonction jeu : c'est lorsque je quitte ce menu jeu que la grille reste en 1er plan, devant le menu affiché après être parti de la fonction jeu. La grille mouvante est prise sur une image png qui comprend aussi l'arrière plan de la grille(tout est sur le meme fichier png).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
      for (y = 0, posy = 0; y < DECORY; y += TY){
            for (x = 0, posx = 0; x < DECORX; x += TX){
                ALLEGRO_BITMAP*tuile = recup_sprite(all_tuiles, TX + 1, TY + 1, 0, 0, NB_COL, MAP[posy][posx++]); //all tuile est un image composé de pion que je découpe, elles sont récupérée par recup_sprite
                if (!tuile)
                    erreur("recup_sprite()");
                al_set_target_bitmap(decor);
                al_draw_bitmap(tuile, x, y, 0);
                al_destroy_bitmap(tuile);
            }
            posy++;
        }
    Par ailleurs je n'affiche qu'une seule fois cette grille(dans le début de la fonction jeu)

    As-tu besoin d'autres informations pour mieux cerner le soucis ? Ai-je mal compris comment utiliser ta solution ?

    Merci d'avance,

    Akiwhite

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Ou alors, vous n'effacez pas l'écran au début de vos fonctions d'affichage de vos menus.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Ou alors, vous n'effacez pas l'écran au début de vos fonctions d'affichage de vos menus.
    Pardon pour cette question triviale, mais quelle ligne de code faut-il utiliser pour effacer en allegro 5 ?

    Merci d'avance.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Je n'arrive même pas à le trouver dans le mode d'emploi allegro ...

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    al_destroy_display me fait crash a chaque fois que je l'utilise alors je ne comprends pas, c'est la seule manière d'effcer une image affichée ?

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Je sais pas trop comment tu cherches. Je n'ai jamais utilisé Allegro mais al_clear_to_color a un nom qui sonne plutôt bien.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    J'ai déja essayé mais en vain, et comme je ne trouve pas de concrès y'a moyen que j'utilise mal la commande ...

  10. #10
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Citation Envoyé par Akiwhite Voir le message
    al_destroy_display me fait crash a chaque fois que je l'utilise alors je ne comprends pas, c'est la seule manière d'effcer une image affichée ?
    Cette fonction supprimera la zone mémoire associée à votre fenêtre (équivalent à une sorte de free() ou delete). J'imagine que le crash est lié au fait que vous tentez d'utiliser la fenêtre, suite à sa destruction.

    On trouve la documentation sur le site officiel : https://liballeg.org/api.html

    D'ailleurs, vous trouverez un livre, en ligne, expliquant Allegro : https://allegro.developpez.com/5/livre/?page=page_3
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  11. #11
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par Akiwhite Voir le message
    Pardon pour cette question triviale, mais quelle ligne de code faut-il utiliser pour effacer en allegro 5 ?
    Après la question est plutôt ambiguë , on n'efface jamais rien , on ne fait que dessiner (donc il faut redessiner la scène à chaque frame).

Discussions similaires

  1. Ouvrir et fermer une image MetaFile
    Par mofetil dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/08/2006, 22h38
  2. Peut on acceder à une image d'une autre application sous windows?
    Par pointer dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 19/04/2006, 12h17
  3. peut on fermer une JFrame automatiquement?
    Par zorm dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 22/11/2005, 16h12
  4. Peut on mettre une image dans une BD MySQL ?
    Par maddog2032 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 25/07/2003, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo