La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Cesi RILA 2014 – Projet Java Julian Mauborgne

Présentations similaires


Présentation au sujet: "Cesi RILA 2014 – Projet Java Julian Mauborgne"— Transcription de la présentation:

1 Cesi RILA 2014 – Projet Java Julian Mauborgne
Projet Frogger Cesi RILA 2014 – Projet Java Julian Mauborgne

2 Introduction Conception Développement Conclusion Plan 03 juin 2015

3 Frogger (1/3) Jeu d’arcade 1981 Konami Diriger des grenouilles
Atteindre les maisons Eviter les obstacles Jeu original Introduction Conception Développement Conclusion 03 juin 2015

4 Objectifs (2/3) Reprise du jeu classique Langage JAVA Introduction
Quatre grenouilles Deux espaces Chronomètre Niveau de difficulté Score Langage JAVA Introduction Conception Développement Conclusion 03 juin 2015

5 Environnement technique (3/3)
Langage : JAVA 8 IDE : eclipse Système de gestion de version : git Librairie graphique : JavaFX Outil de mise en page : Scene builder Outil de build : Ant Introduction Conception Développement Conclusion 03 juin 2015

6 Introduction Conception Développement Conclusion Plan 03 juin 2015

7 Gestion de projet (1/5) Introduction Conception Développement
IHM Prototype Conception globale Développement d’un prototype Moteur de jeu Boucle de jeu Déplacements Intégration des règles de jeu Score Vie Chronomètre Collisions Gameplay Introduction Conception Développement Conclusion 03 juin 2015

8 IHM (2/5) Quatre actions utilisateur : Introduction Conception
Jouer Consulter les scores Modifier les options Quitter l’application IHM répondant aux cas d’utilisation demandées: Quitter l’application…. Consulter les high scores Modifier la difficulté Jouer au jeu IHM de l’application Introduction Conception Développement Conclusion 03 juin 2015

9 Cas d’utilisation principal : jouer une partie (p6)
Lancer une partie (3/5) Début Déroulement Fin Une partie, ou tout jeu nécessite : Un début : déclenché par une action utilisateur <= qd il clique sur « lancer la partie » La partie proprement dit : dépends essentiellement des déplacements du joueur Une fin : qd le nombre de vie arrive à son terme Cas d’utilisation principal : jouer une partie (p6) Introduction Conception Développement Conclusion 03 juin 2015

10 Eléments du jeu (4/5) Obstacles (2) Joueur (2) Fin de partie (3)
Chronomètre (3) Vies restantes (3) Boucle de jeu (1) 3 éléments principaux dans la partie : - La boucle de jeu : entité principale du jeu => met en relations les différents acteurs : les déplacements, les collisions, les règles du jeu… Le joueur et obstacles : objets graphiques soumis à des déplacements => par le joueur, ou moteur (constants, rectilignes, linéaires) <= sensibles aux collisions Les règles de jeu => nbre de vie, timer, zone d’arrivée (conditions qui vont impacter le déroulement du jeu, et selon lesquelles le joueur va devoir adapter son jeu) Introduction Conception Développement Conclusion 03 juin 2015

11 Déroulement d’une partie (5/5)
:IHM :Game loop Joueur Déplacements Mouvement = true :Collisions :Règles Collisions ? Conséquence ? Mise à jour IHM :Gestion des déplacements Déplacements ? Diagramme de séquence mettant en exergue : Le joueur Le moteur de jeu Le moteur de collisions Le moteur de règles Interactions des entités principales d’un cycle de jeu (p8) Introduction Conception Développement Conclusion 03 juin 2015

12 Introduction Conception Développement Conclusion Plan 03 juin 2015

13 Les nœuds graphiques de JavaFX
Librairie graphique (JAVA 8) Multi-plateforme CSS FXML Scene Builder Stage Scene Node Multiplateforme : desktop Linux, Mac OS X, Windows FXML : possibilité de décrire l’IHM dans des fichiers FXML, en XML… - Possibilité de binder directement le fichier à un contrôleur - Possibilité de créer ses propres composants graphiques (java) et de les utiliser (import) => définir des propriétés, directement renseignées dans le xml Scene builder = mise en forme graphique, accès aux composants personnalisés, y compris aux propriétés Les nœuds graphiques de JavaFX Introduction Conception Développement Conclusion 03 juin 2015

14 Principe des timelines
Animations (2/5) Classes animations natives Effets Déplacements KeyFrames / KeyValues Timeline opacity 0% opacity 100% opacity 50% 500 1000 ms 90° 45° Translation, Rotation, Fade, Blur… Principe : définir un état initial, un état final, et la durée en milli-secondes pour passer de l’un à l’autre - KeyFrames : étapes clés => les différents états transitoires (propriétés à un moment donné) - keyValues : la valeur des propriétés à ce moment Principe des timelines Introduction Conception Développement Conclusion 03 juin 2015

15 Boucle de jeu avec une timeline
Game loop (3/5) Timeline(keyFrames) Ligne de temps répétable Accepte un liste d’étapes-clés KeyFrame(duration, event listener) Durée Gestionnaire d’événements Boucle de jeu avec une timeline MAJ Chronomètre Déplacer objets Déplacer joueur Vérifier les règles 30ms Introduction Conception Développement Conclusion 03 juin 2015

16 Objets graphiques : tuiles d’environnement et obstacles
Collisions (4/5)  Objets graphiques : tuiles d’environnement et obstacles Deux niveaux de collisions : Grenouille vs Environnement Grenouille vs Obstacles Trois(+) types de collisions : Négative Positive Nulle A chaque nœuds graphiques (node javafx) correspond un nœud manipulable par le code, et chacun de ces nœuds est pourvu d’une propriété spécifiant le type de collisions auquel il appartient. - 1 = mort !!! => ok - 2 = objets statiques => ok - 3 = objets flottant => ok - 4 = accès interdit => no - 6 = maison => ok, puis no Introduction Conception Développement Conclusion 03 juin 2015

17 Processus du médiateur (p16)
Collisions (5/5) Un déplacement = une notification des nœuds inscrits Une notification = un test entre le nœud émetteur et le receveur Au niveau du code : - calculs de collisions : cf developpez.com… (premier test sur les rectangle bounds, second avec des cercles. Plus le cas particulier obstacles : circle/rectangle). - détection de collisions : plus intéressant Première méthode : parcourir la liste de nodes et tester un à un.. A chaque tour de boucle… (long… risques de rater des collisions, différence entre les collisions effectives du début du test et celles de la fin (boucle de 33ms… pour >100 nodes)) Deuxième méthode : gérer différemment la détection selon le type d’objet et tester uniquement lors d’un déplacement ! -> la grenouille bouge > on teste la position qu’elle aura en testant la liste de node statiques > selon le retour, on autorise ou non, pour une mort ou non. -> oui mais la grenouille ne se jette pas forcément sous les roues des voitures… Pour les objets en mouvement : installer une discussion entre eux, et tester s’il y a déplacements = pattern mediator Processus du médiateur (p16) Introduction Conception Développement Conclusion 03 juin 2015

18 Introduction Conception Développement Conclusion Plan 03 juin 2015

19 Perspectives (1/4) Introduction Conception Développement Conclusion
Revisiter les animations Déplacements Collisions améliorées Radar Objets autonomes Machine à état Collisions Règles Introduction Conception Développement Conclusion 03 juin 2015

20 Technique (2/4) Java Java 8 JavaFX POO UML Introduction Conception
Développement Conclusion 03 juin 2015

21 Expérience (3/4) Gestion de projet Conception Technique Introduction
Estimation du temps Gestion du temps Conception Cahier des charges Méthodologie Technique Introduction Conception Développement Conclusion 03 juin 2015

22 Bilan personnel (4/4) Logique de jeu
Conception selon l’expérience et les connaissances (constante évo) 1er projet Pas une logique d’appli de gestion Je ne ferais pas aujourd’hui ce que j’ai fait au début du projet Introduction Conception Développement Conclusion 03 juin 2015

23 Merci. Questions ?


Télécharger ppt "Cesi RILA 2014 – Projet Java Julian Mauborgne"

Présentations similaires


Annonces Google