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

AWT/Swing Java Discussion :

[Swing-autre?]Afficher un monde: constructions et véhicules


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juin 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 10
    Par défaut [Swing-autre?]Afficher un monde: constructions et véhicules
    Bonjour,

    je tente de créer un petit jeu tout simple, un peu comme TransportTycoon ou SimulTrans.

    Actuellement, la fenêtre de jeu possède un JDesktopPane et lors de la création du jeu, un ensemble de JInternalFrame vient s'ouvrir.

    J'ai codé les choses de cette manière afin de me permettre d'avancer pas à pas et d'ajouter autant de types de fenêtres que je le souhaiterai par la suite.


    Une de ces JInternalFrame a pour but de "montrer le monde", il s'agit en quelque sorte de la fenêtre la plus important.

    Or, je me heurte à un petit soucis en ce qui la concerne car je n'arrive pas à déterminer la manière de la concevoir en sachant que:

    -le monde est divisé en zone (petit carré si l'on veut)... chaque zone doit être selectionnable via la fenêtre.
    -des véhicules se déplacent sur le monde (leur déplacement est géré autre part, pas besoin de s'en occuper. Chaque véhicule doit aussi être selectionnable via la fenêtre.


    J'ai déjà essayé de faire une fenêtre composée de ZonePanel écoutant chacun les événements provenant de la zone qu'ils doivent afficher.. cela marche très bien mais comment faire se déplacer d'éventuel VehiculePanel par-dessus ces fameux ZonePanel?

    De plus, c'est un peu "lourd" comme manière de procéder... cela fait un bon nombre de composants swing.


    J'ai donc aussi essayé via un Canvas possédant son propre thread d'affichage (double-buffering hardware) mais je n'arrivais pas à le faire tenir dans un JScrollPane de manière correcte. Le canvas s'affichait intégralement, en dehors meme du JScrollPane.


    Je me suis dit que, vu qu"une zone ne change pas tant que ca (on construit, on détruit... bon, on ne le fait pas en boucle quand même), je pouvais créer l'image a afficher et ne modifier les parties nécessaires que lors de la réception d'un événements... ensuite, je mettrais les véhicules par-dessus....
    Mais je me heurte encore au fait de placer des composants les uns au-dessus des autres... et la modification d'image n'est pas trop mon fort.... et je n'ai encore une fois aucune idée de la performance.

    Donc force d'essayer une méthode par-ci par-là, je me rends compte que je n'ai actuellement aucune idée quant à la "bonne solution" à mettre en oeuvre.

    Si quelqu'un connait une architecture robuste permettant de faire cela, je suis assez preneur.

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    À première vue, et sous toute réserve, il faut que tu aies deux niveaux : celui des zones, et celui des véhicules, l'ensemble dans un grand panneau.

    Les zones ne sont pas des composants au sens awt ; ce sont juste des régions dans le panneau. Il faut que tu codes ce qui va bien pour déterminer à quel pixel correspond tel zone. Au niveau du véhicule, il n'a plus de problèmes pour se déplacer d'une zone à l'autre, puisqu'il n'y a plus de composants awt ou swing dans le panneau.

    Bref, laisse tomber les composants swing ou awt pour gérer les zones. Fais-le toi même.

Discussions similaires

  1. Caractere è à et autre afficher bizarement
    Par Webselect dans le forum ASP
    Réponses: 1
    Dernier message: 04/06/2010, 00h58
  2. C++, java, DotNet, Delphi - Ok mais quoi d'autre dans le monde professionel ?
    Par _skip dans le forum Langages de programmation
    Réponses: 9
    Dernier message: 18/02/2008, 14h08
  3. Réponses: 5
    Dernier message: 07/06/2007, 10h21
  4. afficher une fenetre_B sur une autre fenetre_A
    Par dibak dans le forum C++Builder
    Réponses: 14
    Dernier message: 10/10/2003, 23h50
  5. [CR] Afficher un champs lié à un champs d'une autre table
    Par Madduck dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 17/09/2003, 11h48

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