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

Langage Java Discussion :

"check-points" en java


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Par défaut "check-points" en java
    Bonjour à tous,

    J'ai crée une très simple simulation de voile. En fait on peut diriger un bateau, et le but est de faire une régate. J'ai placé des bouées, et aimerait trouver un moyen, pour vérifier si l'utilisateur passe bien toutes les bouées et du bon côté! (sorte de check-points)
    Je crois qu'il exsiste quelque chose comme 'PointInRegion' ??

    NB: je suis débutant!

    Merci
    Cordialement

    Pat-trix

  2. #2
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Tu as la classe Point si tu veux

  3. #3
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Salut,

    est-ce une application graphique ? Comment as-tu représenté tes régates ? tes bouées ?

    Si c'est une application graphique imagée, il est possible par exemple de déssiner un rectangle invisible autour de l'image (grace à ses dimensions + x) et d'utiliser la fonction de Rectangle intersects(Rectangle r) qui te permet de savoir à un moment donné si les deux rectangles ont une partie en commun.

    Bien à toi

    Fred

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Par défaut
    Salut,

    Merci pour les réponses !
    Oui, mes bouées sont dessinées dans une méthode 'paint(Graphics g)'.
    Il faut donc que je dessine un rectangel invisible autour de chaque bouée ?
    Et après j'ai trouvé la méthode-test (Rectangle.intersect), mais j'ai pas vraiment compris quels arguments mettre dedans, et comment concrètement faire ce test?! (la position du bateau est déterminée par un point (posx,posy) car le bateau est un 'polygon' dessiné à partir de ce point).

    Cordialement

    Pat-trix

  5. #5
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Ce que je te propose est une solution "de base", c'est celle que j'avais utilisée lors de mon projet pour faire un petit jeu avec des obstacles tout ca, il fallait savoir si un obstacle était en contact avec mon personnage ou pas. J'ai utilisé cette méthode, qui est relativement efficace.

    Le principe :
    Tu déssines un rectangle invisible de la taille de la zone que tu désires, et ce autour de la ou des bouées.
    Ensuite tu déssines un rectangle invisible autour de ta régate.
    Enfin, pour chaque instant t, tu vérifie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(rectangleRegate.intersects(rectangleBouees))
    {
      //traitement, récupération, vérification de l'endroit de l'intersection, etc etc
    }
    Toutes les fonctions sont disponibles sur la javadoc pour rectangle

    voilà bon courage à toi !

    Fred

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Par défaut
    Merci pour ta réponse!

    En effet, c'est une très bonne idée...
    Mais j'ai juste encore un petit problème:

    J'ai crée les 2 Rectangles :

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Par défaut
    (scuse pour la deuxième fenêtre)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
         Rectangle2D rectangleRegate;
         Rectangle2D rectangleBouées;
    Ensuite dans ma méàthode paint


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            g2d.setColor(Color.PINK);
                rectangleRegate.setRect(600,600,20,20);
                rectangleBouées.setRect(300,200,20,20);
                if(rectangleRegate.intersects(rectangleBouées)){
                    System.out.println("RECTANGLE");
                   }

    Et l'applet refuse de s'ouvrir (masi il n'y a pas d'erreurs dans le code!)
    JBuilder fait juste des son comme une "mitrailleuse!!)

    Merci!
    cordialement
    Pat-trix

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

Discussions similaires

  1. [ACCESS][JAVA][INSERT][QUOTE]Pb insertion quot
    Par 205 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 31/01/2008, 17h00

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