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

 Java Discussion :

Probleme avec JPanel


Sujet :

Java

  1. #21
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Tu devrais suivre le modèle MVC,
    Il y a des cours dessus sur developpez : ici et la
    Tu auras probablement du mal au début donc fait le juste pour le déplacement de ton joueur. Rajoute ensuite les missiles et tout et tout quand tu auras pigé le truc.
    ps : J'ai du mis reprendre à 3 fois avant de bien saisir le fonctionnement. Donc ce n'ai pas pour te rabaisser que je dis ça

    Bonne chance

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 11
    Par défaut
    Euh ça me dépasse là

    Je développais juste une petite application ^^

    En faite, j'ai beau tourner le code dans tous les sens j'en arrive toujours à avoir un thread par missile

    A cause de ça en faite:

    Envoyé par javadoc de thread.start()
    It is never legal to start a thread more than once. In particular, a thread may not be restarted once it has completed execution.

    Du coup je suis obligé de faire un new Thread ...

    Je dois surement mal m'y prendre ...

  3. #23
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Je vois la chose comme ça :
    Un thread que tu lances au début de la partie. Thread qui contient une boucle while(laPartieNEstPasFini){...}. Boucle qui contient un sleep de 10ms. Donc le code du thread s'exécutera toutes les 10 ms. (jusque là pas trop compliqué). Ensuite, ton thread est placé dans une classe Model(normal), cette classe doit posséder la liste des missiles, la liste des ennemis et le joueur (ou la liste des joueurs). Missiles, ennemies et joueur doivent posséder la méthode getRectangles() (important pour la suite).Dans ton thread tu dois appeler 2 méthodes. La méthodes "collisions" qui vérifie si un missile touche un ennemi et dans ce cas supprime le missile et l'ennemi ET après la méthode "recalculDesPositionsDesEnnemisEtDesMissiles". Cette méthode doit modifier la position X et Y des ennemis et des missiles. Pour se faire ennemi et missile doivent posséder les attributs vitesseX et vitesseY.Puis faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    posX = posX+vitesseX;
    posY= posY+vitesseY;
    Par exemple si vitesseX = 1 et vitesseY = 0; le missiles se déplacera d'1 px vers la droite toutes les 10 ms.
    Il faut déterminer les vitesses et les positions à la création du missile en s'appuyant sur la position du joueur. Normalement si tu arrive la tu auras déjà parcouru pas mal de chemin.

    Maintenant pour la partie affichage (c'est la qu'intervient le modèle MVC) :
    La Vue (ton panel dans ton cas) possède la méthode paintComponent.
    Il faut que la vue possède la MEME liste d'ennemie et de missiles que le model.
    La vue possède un thread comme que le model mais avec un tps d'attente de 25ms(pas besoin de moins pour que ce soit fluide). Toutes les 25ms ton thread parcours la liste des missiles et des ennemis et fait un repaint.

    Pour finir les déplacement du joueurs et le lancement de missiles :
    La vue détecte les touches appuyé (KeyEvent). Quand une touche est appuyé (Exemple : espace pour l'envoie de missiles) tu appels la méthode "CreationDeMissile" du Model en passant par le controleur. Parce que la vue ne doit pas directement communiquer avec le model

    C'est un gros pavé avec pas mal de technique, avec un peu de patience tu devrais t'en sortir.

Discussions similaires

  1. probleme avec JPanel et JScrollPane
    Par josephgl dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 15/05/2010, 11h49
  2. probleme avec JPanel
    Par riadhhwajdii dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 13/10/2009, 12h52
  3. Probleme avec mon code : Comment changer de JPanel
    Par serialkilled dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 17/12/2006, 11h13
  4. Probleme avec les JPanel dans les JSplitPane
    Par L4BiN dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 16/08/2006, 15h29
  5. [debutant][swing] Probleme avec un Jpanel
    Par JeanMoul dans le forum Débuter
    Réponses: 6
    Dernier message: 27/08/2005, 20h07

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