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

Projets Discussion :

Petit casse brique pour apprendre a développer des jeux sous java


Sujet :

Projets

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 27
    Par défaut Petit casse brique pour apprendre a développer des jeux sous java
    Bonjour,

    Je viens de commencer à développer un casse brique sous java.

    C'est vraiment un brouillon et je pense m'y être vraiment très mal pris.

    Je viens donc vous voir pour avoir vos conseils, améliorer mes connaissances en
    utilisant ce jeux comme support.

    donc vous pouvez télécharger les sources de ce que j'ai fait pour l'instant à l'adresse
    suivante :

    http://sourceforge.net/projects/breaker-001/

    NB: Il est interdit de faire du double poste sur ce forum mais j'aimerai que les développeurs de la section Java s'attarde sur mon problème. Comment dois-je m'y prendre ?

    Merci.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Par défaut
    Citation Envoyé par karas.uchiwa Voir le message
    NB: Il est interdit de faire du double poste sur ce forum mais j'aimerai que les développeurs de la section Java s'attarde sur mon problème. Comment dois-je m'y prendre ?

    Merci.
    Bonjour,

    Si tu pouvais nous expliquer un peu mieux de quel "problème" il s'agit, il nous serait plus facile de te répondre.

    dstar

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah pose une question vraiment relative à ton problème dans le sous-forum java relatif à ton soucis.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 27
    Par défaut
    Bonjour,

    En réalité je n'ai pas de problème précis. Je souhaite apprendre à développer dans un premier temps des petits jeux avec Java.

    Comme support j'ai pris le casse brique.

    Les différents problèmes qui apparraissent :
    • L'architecture de mon application est-elle correcte ?
    • Je pense que si mon code sur une machine de l'époque n'aurait pas tourné car trop inefficace ?
    • Je situe un problème au niveau de l'algorithme de calcul de collision entre les briques et la balle
    • Comment gère l'affichage d'un jeu sous Java ? Est-ce que ma méthode est la bonne ?
    • Je pense que j'ai des problèmes aussi dans la technique de parcours de la liste des briques par la balles. ?


    Pour ce qui est du fil du forum. C'est que m'ont application est un jeux en Java par conséquent j'aurai aimé que les deux communautés se penchent sur mes problèmes.

    Merci d'avance de vos réponses

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 27
    Par défaut
    je viens de faire une modification de l'archive sur sf. Maintenant je vous fournit mon projet eclipse au complet. Comme cela l'IDE vous aidera a naviguer dans mon code.

  6. #6
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 823
    Par défaut
    Salut,

    A mon avis, il va falloir que tu développes un peu plus si tu veux avoir des retours...
    Nous balancer une archive des sources sans un seul commentaire, c'est un peu ardu à lire, et encore plus à analyser...
    Si tu veux des commentaires sur ton travail, présente ce que tu as fait (c'est beaucoup plus rapide et efficace de faire des commentaires sur des explications, que de chercher à savoir ce que tu as fait pour éventuellement faire un commentaire)

    Sinon j'ai testé ton "brouillon" de jeu... c'est un bon début. Pas mal de boulot à faire encore, mais petit à petit ça va avancer
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  7. #7
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    salut,

    Déjà féloches pour le boulot accompli

    Perso, j'ai fait un tour rapide de ton code. Quelques remarques:

    - au vu des packages (je ne suis pas rentré dans le détail): globalement tu t'es attaché à séparer modèle de données, la logique de jeu et le rendu. Excellent point

    - évite la profusion de singletons. Pour rappel, un singleton est parfois vu comme un anti-pattern et son utilisation - bien qu'utile dans certains cas- doit être réservée à des usages bien particuliers. Google et quelques articles sur DVP devraient te donner plus d'infos.

    - évite systématiquement TOUTE constante en dur dans le code (à l'exception des String de log). Place les plutôt en début de classe dans une variable 'static final'. C'est cent fois plus pratique pour la maintenabilité du code. Exemples dans ton code: la taille de la JFrame, le label de tous tes menus, et SURTOUT toutes les constantes de la 'physique de ton jeu' (vitesse de la balle, de la raquette, ...).

    - dans la classe 'Window', pour la gestion des menu-items, utilise les anonymous classes, bien plus pratiques et concises que ton gros 'if / else if' relégué dans 'actionPerformed'. Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    menuItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            menuSavePerform();
        }
    });
    - réutilise les classes existantes quand elles conviennent à ton besoin ; par exemple ta classe DPoint fait un peu double emploi avec la classes java.awt.Point

    - préfère les boucles au 'copier/coller' de code, typiquement pour le contenu de BackgroundDisplay ('repaintBrick', 'repaintPaddle', ...). C'est beaucoup plus compréhensible à la relecture amha.

    - depuis Java 1.5, les énumérations sont utilisables. Préfère-les à une collection de 'public static int CONSTANTE' quand ce sont des valeurs mutuellement exclusives (genre dans InputPaddle, MOVE_LEFT, MOVE_RIGHT, MOVE_NONE).

    - pour la boucle du jeu, tu te bases sur un Thread.sleep(CONSTANTE). Ca peut poser quelques soucis car dans un OS non temps-réel, rien ne garantit que les CONSTANTE millisecondes seront exactement respectées. Tu pourras très bien avoir pile poil CONSTANTE millisecondes à une frame F, puis 10ms de plus à F+1, etc...
    Résultat: le déplacement normalement constant de tes sprites risque de faire apparaître quelques 'saccades' à cause de micro accélérations/décélérations.
    Pour palier à ce genre de souci, il vaut mieux baser sa logique de jeu sur un framerate variable. Concrètement, ça veut dire que ta boucle exécutera la fonction Containter.run() en lui passant en paramètre le nombre de millisecondes effectivement écoulés. Les déplacements et tout le reste seront alors calculés en fonction dudit temps écoulé et exprimés dans une unité relative au temps (en pixel / seconde par exemple).


    Voilà, rien de bien méchant en soi, juste quelques remarques qui j'espère te seront utiles.

    Evidemment, il reste encore pas mal de boulot sur le gameplay. Notamment faire que l'angle de rebond de la balle soit fonction de la position relative de la balle par rapport à la raquette. Parce que pour le moment, il n'y a rien d'autre à faire que s'assurer que la raquette soit dessous la balle à chaque fois ; on ne peut pas influer sur où la balle ira.

    Pour la gestion de l'affichage et autres 'bonnes pratiques', je pense qu'une bonne idée est de décrotiquer quelques libs open-source existantes pour voir comment elles font. Genre le framework pulpcore pour tout ce qui est gestion du framerate (oui je fais un poil de pub... et alors )


    Il est interdit de faire du double poste sur ce forum mais j'aimerai que les développeurs de la section Java s'attarde sur mon problème. Comment dois-je m'y prendre ?
    T'inquiète, il n'y a pas que des C++eurs sur le forum 2D/3D/jeux

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/11/2010, 03h11
  2. Meilleur langage pour développer des jeux ?
    Par Kelias dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 26/02/2009, 10h02
  3. Réponses: 7
    Dernier message: 22/07/2008, 21h04
  4. Réponses: 20
    Dernier message: 02/02/2008, 23h14
  5. [Logiciel] Outil pour développer des jeux vidéos
    Par Kiri dans le forum EDI et Outils pour Java
    Réponses: 4
    Dernier message: 16/06/2004, 21h29

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