[Java] threads et jeu
Fermé
isley
Messages postés
20
Date d'inscription
jeudi 21 août 2008
Statut
Membre
Dernière intervention
14 novembre 2009
-
17 sept. 2009 à 11:55
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 - 17 sept. 2009 à 15:06
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 - 17 sept. 2009 à 15:06
A voir également:
- [Java] threads et jeu
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- 94 jeu - Télécharger - Puzzle & Réflexion
- Java apk - Télécharger - Langages
- Jeu zuma - Télécharger - Jeux vidéo
2 réponses
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
17 sept. 2009 à 14:49
17 sept. 2009 à 14:49
Hi there,
Voici un début d'analyse. Nous avons 2 classses, Player et Ball. On peut considérer qu'un joueur possède ou ne possède pas la balle à un moment donné. Une première idée serait d'avoir un truc du genre
class Player {
Ball ball;
...
}
i.e. pouvoir préciser pour chaque joueur l'instance de la balle associée (si le joueur n'a pas de balle à un moment donnée, nous aurons ball à null).
Mais il y a plusieurs joueurs et une seule balle ==> la représentation ci-dessus n'est peut-être pas optimisée. Une seule balle ==> on applique le singleton pattern pour la classe Ball. Et tout ce dont nous avons besoin pour un joueur donné est maintenant un boolean, hasBall.
Le jeu se joue en 2D => faut prendre en compte les positions aussi. Rajouter donc un couple de double x, y à la classe Player. La classe Ball n'en a pas besoin (si on se résume à faire ce que tu décris)
Maintenant, il y a des passes... Faut faire une analyse pour voir où on peut rajouter une méthode passer: est-ce mieux une méthode passTheBallTo (Player aPlayer) au niveau de la classe Player ou bien une méthode genre changePlayer (Player aPlayer) au niveau de la classe Ball ? Je te laisse cette analyse.
++
Voici un début d'analyse. Nous avons 2 classses, Player et Ball. On peut considérer qu'un joueur possède ou ne possède pas la balle à un moment donné. Une première idée serait d'avoir un truc du genre
class Player {
Ball ball;
...
}
i.e. pouvoir préciser pour chaque joueur l'instance de la balle associée (si le joueur n'a pas de balle à un moment donnée, nous aurons ball à null).
Mais il y a plusieurs joueurs et une seule balle ==> la représentation ci-dessus n'est peut-être pas optimisée. Une seule balle ==> on applique le singleton pattern pour la classe Ball. Et tout ce dont nous avons besoin pour un joueur donné est maintenant un boolean, hasBall.
Le jeu se joue en 2D => faut prendre en compte les positions aussi. Rajouter donc un couple de double x, y à la classe Player. La classe Ball n'en a pas besoin (si on se résume à faire ce que tu décris)
Maintenant, il y a des passes... Faut faire une analyse pour voir où on peut rajouter une méthode passer: est-ce mieux une méthode passTheBallTo (Player aPlayer) au niveau de la classe Player ou bien une méthode genre changePlayer (Player aPlayer) au niveau de la classe Ball ? Je te laisse cette analyse.
++
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
17 sept. 2009 à 15:06
17 sept. 2009 à 15:06
[Edit] Pas répondu à la question concernant les threads... Il paraît approprié d'avoir chaque instance de la classe Player coordonnée par son propre thread. Un joueur bouge ==> tu peux donc, au niveau de chaque thread, avoir un algorithme de mouvement pour modifier les coordonnées du joueur dans le temps.
Avoir également une méthode qui va s'exécuter toutes les x millisecondes pour déterminer si un cas de proximité existe (existe-t-il un joueur suffisamment près d'un autre pour pouvoir lui passer la balle)? Cette méthode peut vivre dans son propre thread (et faire la vérif de toutes les paires de 2 joueurs à chaque exécution) ou bien dans chaque thread associé à un joueur (et dans ce cas il y aura la vérification par rapport aux position des autres (N-1) joueurs. Je te laisse égalament le soin de vérifier quelle est le meilleur choix pour cette methode.
++
Avoir également une méthode qui va s'exécuter toutes les x millisecondes pour déterminer si un cas de proximité existe (existe-t-il un joueur suffisamment près d'un autre pour pouvoir lui passer la balle)? Cette méthode peut vivre dans son propre thread (et faire la vérif de toutes les paires de 2 joueurs à chaque exécution) ou bien dans chaque thread associé à un joueur (et dans ce cas il y aura la vérification par rapport aux position des autres (N-1) joueurs. Je te laisse égalament le soin de vérifier quelle est le meilleur choix pour cette methode.
++