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

Bibliothèques C++ Discussion :

Histoire d'image et de bibliothèque


Sujet :

Bibliothèques C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2009
    Messages : 122
    Par défaut Histoire d'image et de bibliothèque
    Bonjour tout le monde.

    Si je n'est pas posté dans un sous forum de bibliothèque c'est tout simplement car à l'heure actuelle je ne sais pas laquelle utiliser.

    J'ai débuter avec la SDL mais comme mon projet actuel m'amène une question particulière, j'ai pensé qu'il fallait peut-être une bibliothèque particulière.

    Je suis en prépa info est j'ai des projets à réaliser, avec des contraintes de développement. Par contre le sujet est libre.
    Pour ce dernier projet il faut juste qu'il soit en Objet avec Xclasse, héritage, etc...

    Et j'avais depuis un moment un projet que j'avais envie de réaliser mais il nécessite une interface graphique, et comme le C et C++ sont les langages que je trouve actuellement les plus intéressants je voulais les utiliser.

    Pour ne pas vous gaver avec les détails du projet, on va en prendre un similaire que j'ai déjà réalisé dans un autre langage : Le RISK !
    Pour rappel ce sont des joueurs qui s'affronte sur une carte afin d'atteindre des objectifs ou dominer leurs adversaires.

    Je vais donc me retrouver avec des territoires qui changeront de couleur en fonction de la personne qui les détiens. Sur mon projet, peuvent se retrouver pour une partie jusqu'à 35 joueurs. Donc 35 couleurs différentes. Sur une carte d'environs 130 territoires.

    Certain commence peut-être à voir où je veux en venir. Actuellement avec mes connaissances je serai obligé d'avoir : 130 * 35 = 4550 images pour 1 seule carte (il y en a 4, celle prise en exemple étant la plus grande). Je dirai donc au final environ 10 000 images juste pour afficher les cartes...

    Je pense et espère qu'il existe un moyen de ne pas avoir à créer 10 000 images. J'ai trouvé sur le net et j'espère avoir bien compris (y a beaucoup d'espoir vous trouvez pas ?? mais bon tant qu'il y a de la vie y a de l'espoir ^^) qu'il existe un moyen de résoudre se problème en passant par un système de filtre. Le filtre représentant la même carte mais avec les territoires découpés, puis on place par dessus la carte.

    En plus de pouvoir changer la couleur, il serait possible de cliquer sur les territoires (chose dont j'ai besoin aussi). D'ailleurs pour cette dernière fonctionnalité j'aimerai que le clique puisse sur faire sur exactement la forme complète du territoire et non un espace définit à l'intérieur du territoire.

    Explication par l'exemple : Si j'ai la France je veux que si je clique, sur la Bretagne ou les Alpes ou l'extrême Nord, le clic fonctionne est non uniquement si je clique sur une zone définie qui se trouve en plein centre.

    Je cherche donc à savoir comment faire cela et avec quoi faire cela.

    J'ai effectuer des rechercher mais je dois avouer que sans le nom de la méthode, je patauge beaucoup, donc j'espère que ce n'es tpas une question qui a été posé 10000 fois et que je sois passé à côté car j'ignore comment elle se nomme...
    Si c'est le cas je m'en excuse.

    Je cherche donc à savoir si une telle technique existe et si oui quelle(s) bibliothèque(s) permettrai(en)t d'obtenir ce résultat.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 121
    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 121
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    J'ai peut être une solution, je suis loin de prétendre que se soit la meilleure.
    Si vous avez 130 territoires, vous aurez 130 images d'après moi ( en fait, je pense que l'on peut faire, juste une image, mais ce sera plus compliqué ).
    En fait, les images devront représenté chaque territoire, remplit avec une couleur connut ( et si possible non utilisé par le jeu ... ( surement pas une obligation ) ). Une fois l'image chargée, il faudra faire du travail dessus.
    Une image n'est tout simplement qu'un tableau de pixels. Il faudra changer tout les pixels de la couleur définit par avance, en une autre couleur, et hop, nous avons un territoire avec une nouvelle couleur. Au final, vous aurez vos 35 * 130 images, mais tout ceci sera généré par le programme ( à part les 130 de bases ).
    Voici ma première solution.

    Deuxième solution ( peut être un peu plus dur ),
    Une grande image qui représente la carte. Il faudra que les frontières soit parfaitement définie par des contours ( frontières ) comme ceci, si nous devons changer la couleur d'un territoire, il faudra juste faire un algorithme de détection de zone et changer tout les pixels qui sont dans cette zone. Je pense que l'algo est très simple, malgré que je n'en ai jamais fait. ( Pourant c'est un exo courrant dans le concours organisé par l'Épita ( Épitech? ).

    Pour les cliques, je ne sais pas encore, mais le même algo de zone, pourrait aidé. ( Si la zone contient une boite, donc nous pouvons savoir quelle zone est cliquée ).

    En espérant que cela aide ( et que cela est clair )
    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 confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2009
    Messages : 122
    Par défaut
    Oki, donc si j'ai bien compris, la réponse et le PDF que j'ai trouvé sur un classe imagecolor, le but du jeu serait donc :

    (Je part d'une carte blanc/gris (couleur non utilisé par les joueurs) avec contour de chaque territoire en noir (non utilisé par les joueurs non plus))

    1/ Trouver les pixels noirs.
    2/ En déduire la zone blanche : soit le territoire.
    3/ Insérer dans un tableau la position des pixels du territoire.
    4/ Modifier pixel par pixel la couleur de la zone.

    Donc la grosse difficulté sera de définir les zones, de manière rapide en prenant compte des frontières communes.

    Je pense qu'en effet une fois les zones définies le problème du clic n'en est plus un car il suffira à chaque clique de vérifier la position de la souris.

    Ce que j'ai du mal à comprendre par contre c'est comment ce fait-il que modifier l'image implémenté dans le programme ne modifie en rien sa source.

    En tout cas merci pour cette réponse !

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Bonjour,

    Et pour compléter coté technique, tu peux utiliser Qt comme bibliothèque graphique qui permet de manipuler des images et des filtres...
    De plus Qt est en C++, donc en langage Objet, contrairement à SDL qui est en C donc en langage impératif, et donc hors sujet pour toi !

    Va faire un petit tour sur le forum Qt, t'auras des réponses sur les images & les filtres... (Ainsi que de cliquer sur une zone particulière)
    http://www.developpez.net/forums/f37...liotheques/qt/

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2009
    Messages : 122
    Par défaut
    De plus Qt est en C++, donc en langage Objet, contrairement à SDL qui est en C donc en langage impératif, et donc hors sujet pour toi !
    Merci pour cette précision ! J'ai bien fait de penser qu'une autre bibliothèque que SDL s'imposait.

    Question à part, j'ai recherché rapidement les différences que l'on peut trouver sur les différentes bibliothèques graphiques et je n'ai pas trouvé grand choses. J'ai juste compris que GTK n'est pas adapté à windows, que wxWidget n'est pas adapté à toute les situations, la seule fois ou j'ai entendu parlé de Qt on m'avait dit qu'il ne faisait que des widgets et en aucun cas de l'image pur (donc à oublier dans mon cas) alors que je me rends compte que ce n'est pas le cas du tout. Pour la SDL qui n'est pas prévu pour le C++ c'est de ma faute j'aurai du y faire plus attention. De plus une autre bibliothèque graphique avait été nommée mais je ne me souviens plus de son nom tout ce que je sais c'est qu'elle était très complète et puissante mais complexe à utiliser. D'où : quelqu'un aurait un comparatif ou explicatif des différentes bibliothèques graphiques du C++ ??

    En tout cas QT me semble très bien pour ce que je veux faire car après quelques recherches dans la section QT, comme tu me l'as conseillé, j'ai trouvé toutes les réponses aux problèmes de définition de zone d'une image, de changement de couleur et de zone cliquable non carré ! (je n'ai pas encore regardé pour les filtres)

    Par contre je me demandais, était-il préférable d'utiliser une seule bibliothèque graphique ou plusieurs ?

    Car si je reste dans mon projet, il me faudra une interface graphique avec la carte + une partie avec des widgets (Boutons, TextBox, ComboBox).

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    peut-être as-tu entendu parler de OpenGL ? Mais là, il ne s'agit pas d'une API pour de la GUI mais pour faire du rendu 3D essentiellement... (ou 2D relativement complexe)

    Il me semble que dans ton cas QT devrait suffire...

    Par contre je me demandais, était-il préférable d'utiliser une seule bibliothèque graphique ou plusieurs ?
    Avoir 2 bibliothèques graphiques dans la même application est possible, c'est juste parfois compliqué quand celles-ci ne savent pas communiquer entre elles simplement... (Et du coup très difficile d'intégrer des élements graphique d'une API dans une autre)
    OpenGL étant différente, on peut l'intégrer avec quasiment toutes les autres APIs, il me semble...

    Car si je reste dans mon projet, il me faudra une interface graphique avec la carte + une partie avec des widgets (Boutons, TextBox, ComboBox).
    Ca, c'est de l'organisation de code... Tu peux très bien t'en sortir tout en Qt, en découpant deux parties dans ton programme...

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

Discussions similaires

  1. [WD17] Comment appeler afficher une image de la bibliothèque ?
    Par EriCstoFF dans le forum WinDev
    Réponses: 3
    Dernier message: 17/07/2013, 08h02
  2. [Débutant] Trouver l'url d'une image dans une bibliothèque
    Par ejourdan dans le forum Développement Sharepoint
    Réponses: 7
    Dernier message: 26/03/2013, 11h10
  3. Charger image de la bibliothèque pour envoie sur serveur
    Par anto2b dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 04/02/2013, 19h11
  4. Réponses: 0
    Dernier message: 29/12/2011, 14h44
  5. Réponses: 1
    Dernier message: 20/09/2006, 19h51

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