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

avec Java Discussion :

Java enfant - PingPong


Sujet :

avec Java

  1. #1
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut Java enfant - PingPong
    Salut,

    Ma question est lié au jeu PingPong du livre Java pour les enfants que l'on trouve en lien dans ce forum.

    Je souhaiterais modifier les trajectoires de la balles, lors du rebond.

    Actuellement lorsque je sert j'ai un rand qui tourne et cela me permet de définir 3 directions possibles. Ensuite je me suis attaqué au rebond sur une raquette de la balle. Pour les mouvement de droite à gauche j'ai réussi, mais pour les mouvement de gauche à droite je n'arrive pas.

    Ça doit surement être un tous petit truc de rien du tous, mais j'ai besoin d'un œil externe pour regarder mon code.

    Je vous met les classes et l'interface en pièce jointe.

    Mes modifications dans moteurJeuPingPong sont entres les commentaires:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //test**********************
     
    //Fin test *******************
    Fichiers attachés Fichiers attachés
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  2. #2
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Salut, je viens de tester ton petit jeu et il à l'air de bien fonctionner. J'arrive à faire des échanges avec l'ordinateur sans problème.

    edit : Bon ben j'y arrive plus >< lorsque je sers, la balle se met sur ma raquette et ne bouge plus.

  3. #3
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Bon j'ai regardé un peu mieux et j'ai trouvé quelque chose de très étrange ..
    En rajoutant un petit System.out après le while(true) pour voir si il passait dans la boucle du Thread, magie ! ça marche ! Je l'enlève, magie ! ça marche plus .. Je t'avoue avoir vu des choses étranges mais là ça me dépasse un peu ..

    Il semblerait que ça viens de ton thread, j'ai donc modifier un peu ton code et ça marche bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class MoteurJeuPingPong extends Thread implements  MouseMotionListener, KeyListener, ConstantesDuJeu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Constructeur. Stocke une référence à la table.
    	public MoteurJeuPingPong (TableVertePingPong tableVerte)
    	{
    		table = tableVerte;
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    @Override
    	public void run ()
    	{
    		boolean rebondPossible = false;
    		long chekTime = System.currentTimeMillis();
    		while(true)
    		{	
    			if (System.currentTimeMillis() > (chekTime + 1000 /60))	 // Permet de passer dans le IF toutes les 60Ms
    			{
    				chekTime = System.currentTimeMillis();
    				if (balleServie)
    				{ // Si la balle est en mouvement
    					// Etape 1. La balle se déplace-t-elle vers la
    					// gauche ?
     // etc ..


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    TableVertePingPong ()
    	{
     
    		MoteurJeuPingPong moteurJeu = new MoteurJeuPingPong (this);
    		moteurJeu.start();  // < -------------
    		// Reçoit les mouvements de la souris pour déplacer la
    		// raquette.
    		addMouseMotionListener (moteurJeu);
    		// Reçoit les événements clavier.
    		addKeyListener (moteurJeu);
    	}
    Voila j'espère t'avoir aidé

  4. #4
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    Ben en fait que tu ai un retour de l'ordinateur c'est normal, le problème est que l'ordinateur ne renvoi que dans une seule direction, horizontal.

    Après que le code soit bizarre, je veux bien te croire, je ne sait pas de quand date le bouquin, mais il est possible que beaucoup de choses soit différentes maintenant.
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  5. #5
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Ah pardon j'avais pas compris ton problème
    Sinon c'est tout simple, t'as oublié l'instruction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    balle_Y += déplacementVertical;
    dans la deuxième conditionnelle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if ( ! déplacementGauche && balle_X <= BALLE_X_MAX)
    					{
    						rebondPossible = (balle_Y >= raquetteEnfant_Y && balle_Y < (raquetteEnfant_Y + LONGUEUR_RAQUETTE)
    								? true
    								: false);
     
    						balle_X += INCREMENT_BALLE;
    						balle_Y += déplacementVertical;  //<-----
    						table.positionnerBalle (balle_X, balle_Y);
    Bonne continuation

    PS: ton random de 0 à 5 peut se simplifier par le même de 0 à 2, tu as les même proba pour tes 3 actions et ça évite les conditionnelles un peu trop chargés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    valeurRand = rand.nextInt (2);
    if (valeurRand == 0) déplacementVertical = - 1;
    if (valeurRand == 1) déplacementVertical = 0;
    if (valeurRand == 2) déplacementVertical = 1;

  6. #6
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    Un truc tous con, bien comme je le disais, merci pour ton aide, j'ai encore quelques modifications à apporté:
    -empêcher la possibilité d'appuyer sur N une fois la partie démarré.
    -créer un choix de score : 3, 11, 21.
    -créer un choix de vitesse.

    Mais trop de taff pour l'instant!!!

    édit: Par conter jolie petit bug qui arrive très très très rarement mais qui te coute un point quand même, la balle par dans l'autre sens lors du service, et je vois pas dans le code ou est le bug, si toi tu le vois...
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

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

Discussions similaires

  1. « Java pour les enfants » consultable en ligne !
    Par Mickael Baron dans le forum Programmation pour enfants
    Réponses: 140
    Dernier message: 23/08/2018, 18h04
  2. Programmation Java pour les enfants, les parents et les grands-parents
    Par imaintsoanala dans le forum Général Java
    Réponses: 1
    Dernier message: 25/01/2011, 13h08

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