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

Discussion: Astuce avec allegro

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : novembre 2008
    Messages : 45
    Points : 49
    Points
    49

    Par défaut Astuce avec allegro

    Bonsoir à tous

    Je cherche une méthode dans allegro qui me permet d'attribuer une image à un objet construit au lieu d'affecter une couleur avec makecol(0,50,255).
    rectfill(buffer, (r->x1_rect), (r->y1_rect), (r->x2_rect), (r->y2_rect),makecol(0,50,255));

    Et merci d'avance

  2. #2
    Membre confirmé Avatar de TNT89
    Inscrit en
    juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Âge : 29

    Informations forums :
    Inscription : juillet 2007
    Messages : 358
    Points : 608
    Points
    608

    Par défaut

    Je ne comprends pas très bien ce que tu veux faire? Insérer des images?
    blit avec des sprites???

  3. #3
    Membre averti Avatar de yetimothee
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2007
    Messages : 257
    Points : 382
    Points
    382

    Par défaut

    Si tu demandais cela uniquement pour les rectangles, ça aurait été simple. Mais avec les cercles, je ne vois pas.
    Au final, il faut savoir comment Allegro trace ses primitives. A mon humble avis, il utilise l'équation de la forme géométrique, et il affiche un pixel de la couleur donnée par point de coordonées (x,y) appartenant à la forme (le point (x, y) appartient à la forme si ses composantes x et y vérifient l'équation de la forme).
    Il suffirait de faire la même chose, sauf qu'à la place d'afficher le pixel de la couleur donnée en argument, il faudrait lui donner la couleur du pixel de la position (x, y) du bitmap donné.
    Cependant, il faudrait aussi s'intéresser aux dimensions de la forme et de l'image, car si l'image est plus petite que la forme affichée, que se passerait t-il ?

    Si j'avais à coder cette fonction, je donnerais en argument une valeur qui dirait si :
    - Il faut remplir toute la forme avec la texture donnée (au quel cas il faut penser à changer les dimensions du bitmap contenant la texture pour coïncider avec les dimensions de la forme) ;
    - Il faut répéter la texture si elle est trop petite par rapport à la surface à remplir ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    FONCTION forme texturée (propriétés de la forme, texture à appliquer, méthode d'application) :
    SI méthode d'application = tout remplir FAIRE
       calculer les dimensions (hauteur, largeur) prises par la forme une fois affichée
       agrandir le bitmap "texture à appliquer" à ces dimensions
       POUR tout les point (x, y) FAIRE
          SI point (x, y) appartient à forme à afficher FAIRE
             dessiner un pixel aux coordonnées (x, y) ayant pour couleur la couleur du pixel de coordonnées (x, y) du bitmap "texture à appliquer".
          FIN SI
       FIN POUR
    SINON SI méthode d'application = répéter texture
       POUR tout point (x, y) FAIRE
          SI point (x, y) appartient à forme à afficher FAIRE
             dessiner un pixel aux coordonnées (x, y) ayant pour couleur la couleur du pixel de coordonnées (x - largeur texture * partie entière(x / largeur texture), y - hauteur texture * partie entière(y / hauteur texture)) du bitmap "texture à appliquer".
          FIN SI
       FIN POUR
    FIN SI
    il faut coder autant de fonction que de forme désirés. La seule différence entre chaque fonction sera l'équation de la forme ( (x − a)² + (y − b)² = r² pour le cercle, par exemple).

    Voilà, bien que ce soit un peu tard...

Discussions similaires

  1. Aide newbie configuration code::blocks avec allegro
    Par max---- dans le forum Code::Blocks
    Réponses: 8
    Dernier message: 24/10/2007, 10h39
  2. conflit bitmap avec allegro
    Par nicoss dans le forum Allegro
    Réponses: 5
    Dernier message: 22/04/2006, 19h08
  3. Colision simple avec allegro
    Par kernerteam dans le forum Allegro
    Réponses: 2
    Dernier message: 10/03/2006, 23h07
  4. Probleme de sprite avec allegro
    Par kernerteam dans le forum Allegro
    Réponses: 2
    Dernier message: 09/03/2006, 20h17
  5. astuce avec fonction update
    Par cubepiege dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/11/2005, 10h54

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