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

Programmation multimédia/Jeux Python Discussion :

gestion de coordonnées pour placer images et textes sur un fond


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 17
    Par défaut gestion de coordonnées pour placer images et textes sur un fond
    Bonjour,

    Suite d'un mini projet de création de fiches data en forme de carte à jouer.

    J'ai un fond, et je vais "remplir" les données images et textes un peu partout.
    Pour le moment j'ai créé chaque élément en utilisant des coordonnées en dur dans le code, et genre si je change de modèle (ex : plus grande résolution) tout est HS.

    Y aurait-il des idées pour gérer le placement des éléments autrement ?
    - en (%x, %y) (et taille police à voir du coup ...) ?
    - en plaçant quelques points de repère et des dérivées depuis ce point (mais ça règle pas le problème qu'il faut passer en %) pour au moins traiter un bloc

    Je rajoute quelques exemples (fond et un rendu) pour illustrer
    Nom : FondCreature.png
Affichages : 141
Taille : 119,3 Ko
    Nom : coutl.jpeg
Affichages : 138
Taille : 27,6 Ko

    des extraits de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        img = Image.open('images/FondCreature.png')
        font18 = ImageFont.truetype("fonts/blackchancery.regular.ttf",18)
        font15 = ImageFont.truetype("fonts/blackchancery.regular.ttf",15)
     
        #Edition de l'image
        d = ImageDraw.Draw(img)
     
        #Ajout Title
        d.text((30,20), title, font=font18, fill=(0,0,0))
        #Ajout Type
        d.text((30,298), type, font=font18, fill=(0,0,0))
        #Ajout Size
        d.text((240,298), size, font=font15, fill=(0,0,0))

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 052
    Billets dans le blog
    141
    Par défaut
    Bonjour,

    Je ne sais pas si j'ai la meilleure réponse, car c'est aussi un problème qui me turlupine.
    Généralement, on va avoir des sortes de conteneur, qui vont offrir des règles de répartition pour les objets contenus. Par exemple, une liste d'éléments, offrant une unique colonne (souvent appelé Column, ColumnItem), qui est un élément non visible, mais qui va répartir les objets contenus équitablement (chaque objet contenu aura la même hauteur).
    Aussi, il y aura aussi un système d'ancrage, indiquant qu'un tel élément, doit coller le bord droite de son parent. Sa position sera alors calculée par rapport à son parent.

    Avec ces deux systèmes, on doit pouvoir obtenir un comportement uniforme pour toutes tailles d'écran. C'est ce que fait Qt (mais on peut regarder ce qui se fait dans le Web pour avoir une autre inspiration).
    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
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 252
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    C'est ce que fait Qt (mais on peut regarder ce qui se fait dans le Web pour avoir une autre inspiration).
    Et beaucoup d'autres bibliothèques d'interface graphique comme Tkinter & Cie. En ligne on pense évidemment au couple HTML/CSS. Hé oui car vraiment tes cartes ne sont rien d'autres que des interfaces !

    Pour compléter le reste j'ajouterai qu'il faut éviter les nombres magiques (30, 298…) et penser relatif (Position, taille…) plutôt qu'absolu. Les attributs (For, Dex…) le sont par exemple. Si ton infographiste s'y connait en vectoriel n'hésitez pas à échanger ! Penser SVG ou alors partir de la résolution maximale et s'assurer qu'on ne perd aucun élément graphique en route. En matière de composants je te conseille les tables : Colonnes, listes… Double combo avec le message de LW !!

    Maintenant à toi de voir si tu veux réinventer la roue ou te reposer sur une biblio. Chacun son jeu !

Discussions similaires

  1. code - image et texte sur la meme ligne
    Par Teddy7 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/05/2010, 23h40
  2. [XL-2003] Image et Texte sur un bouton de la barre d'outils
    Par curt dans le forum Excel
    Réponses: 2
    Dernier message: 24/07/2009, 10h56
  3. Réponses: 2
    Dernier message: 25/07/2007, 12h20
  4. Image et texte sur la même ligne : aligner verticalement les deux ?
    Par titoumimi dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 25/01/2007, 13h47
  5. [SWT]image ET text sur un bouton SWT
    Par piwai dans le forum SWT/JFace
    Réponses: 14
    Dernier message: 04/10/2006, 15h41

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