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

2D Java Discussion :

Complétion de carte : Quelle interface ?


Sujet :

2D Java

  1. #1
    Nouveau Candidat au Club
    Complétion de carte : Quelle interface ?
    Bonjour,

    Dans le cadre d'un projet étudiant, je souhaite reproduire un jeu qui contient notamment un aspect conquête de territoires.

    Le truc c'est qu'à la manière d'un risk, chaque territoire pourra être conquis par un joueur ou un autre (jusqu'à 6 joueurs a priori), chacun représenté par une couleur.

    Je souhaiterais donc créer une interface qui peut compléter la carte au fil des conquêtes, ce qui me paraît difficile sur Swing (à moins de trouver un moyen de superposer des images avec un canal alpha mais ce serait assez laborieux).
    Y aurait il une bibliothèque plus adaptée à cela ?

    Merci beaucoup !

  2. #2
    Modérateur

    Salut,
    Citation Envoyé par esiache Voir le message
    à moins de trouver un moyen de superposer des images avec un canal alpha mais ce serait assez laborieux).
    Pourquoi laborieux ?

    D'autre part, il y a les composites qui peuvent être utilisés (AlphaComposite), mais plus laborieux, parce qu'il faut un masque.

    Tu peux par ailleurs procéder en vectoriel (avec des cartes SVG par exemple). Regarde cette discussion à ce sujet (en particulier, message #20).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Nouveau Candidat au Club
    Citation Envoyé par joel.drigo Voir le message
    D'autre part, il y a les composites qui peuvent être utilisés (AlphaComposite), mais plus laborieux, parce qu'il faut un masque.
    Ça dépend, le masque doit-il avoir une forme géométrique simple ou peut-on le définir simplement ?

    Merci pour ta réponse en tout cas !

  4. #4
    Modérateur

    Le masque c'est par exemple, en noir les parties transparentes et en blanc les parties opaques. En revanche, si on veut de l'anti-aliassage, ça peut être compliqué de faire la partie transitoire. Et il faut donc deux images par région.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Rédacteur/Modérateur

    Java2D dispose de toute ce qu'il faut pour faire ca en AWT ou Swing. Il faudra par contre faire un peu de codage de rendu de bas niveau pour généraliser tout cas.
    Voir Créer un ticket à gratter pour un truc très basique sans alpha composite (mais perso je préfère les composites).

    JOGL pas la moindre idée, faut voir que le OpenGL propose sur la chose.
    Idem pour JMonkeyEngine.

    Coté FX ça serait plus facile avec de nœuds donc en vectoriel (absence de composites sur Canvas) car il y a directement le concept de masques dans chaque nœud. Sinon on peut aussi utiliser du Java2D mais ça fait un peu double emploi.
    Pas trop testé FXGL la lib qui permet de faire des jeux en FX
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Rédacteur/Modérateur

    Citation Envoyé par joel.drigo Voir le message
    En revanche, si on veut de l'anti-aliassage, ça peut être compliqué de faire la partie transitoire
    Les gradients en niveau de gris et le flou (box blur ou gaussian blur) sont la pour ça. Le mieux restant de composer un tampon (la forme de base qui représente le champs de vision du perso / du pion) déjà antialisé par dessus le masque.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  7. #7
    Modérateur

    Citation Envoyé par bouye Voir le message
    Les gradients en niveau de gris et le flou (box blur ou gaussian blur) sont la pour ça. Le mieux restant de composer un tampon (la forme de base qui représente le champs de vision du perso / du pion) déjà antialisé par dessus le masque.
    Je trouve justement que lors de la juxtaposition de plusieurs bitmaps de formes très découpées (ici des régions de pays avec bordure et fond de plusieurs couleurs (la même région pouvant être peinte en différentes couleurs à priori)). Dans ce cadre (c'est moins le cas lorsqu'il n'y a pas de bordure, ou que la bordure est suffisamment épaisse), la superposition/juxtaposition au bord de plusieurs bitmap à bordures transparentes donne des résultats parfois un peu pourris et le flou n'est que là pour rendre encore plus moche le rendu qui me donne l'impression de baver, à moins d'être retouchées pixels par pixels à la main éventuellement. Pour le dessin d'un pion, ça peut être moins désagréable et passer, mais pour les régions de la carte, je préfère nettement le rendu vectoriel. Et ça permet plus de libertés (changements d'échelle, rotations...)
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.