Projet Informatique (CSC 3502)

Slides:



Advertisements
Présentations similaires
La Méthode de Simplexe Standardisation
Advertisements

Copyright ©: SAMSUNG & Samsung Hope for Youth. All rights reserved Tutorials Bases de linformatique : Premiers pas Niveau : Débutant.
Produit Gammes Nomenclatures Modules Techniques Prix de Revient Prix de Vente Modules Techniques Client Marges Mise en route Temps Unitaire Prix (Ex:
Page 1 Retour sur le e- tourisme. Page 2 Quelques chiffres…
Sommaire Présentation du projet Déroulement du projet Partie technique
Ou comment partager la connaissance
CONDUIRE une REUNION.
1 Programmation dapplications BD WEB : un tutoriel Bruno Defude GET-INT Evry
La Gestion de la Configuration
Portée des variables VBA & Excel
Etudiants : Benjamin BLANC Cyrille KLUZEK Encadreur :
Calculs de complexité d'algorithmes
Conception d’une interface pour ordinateur de plongée
Algorithmique et évaluation
GUIDLINE DE PRESENTATION DE LA FORMATION Architectures de Messageries (1) version du 7 Mars 2011 Temps : 4h A imprimer afin de pouvoir le suivre et noter.
1 V-Ingénierie… La compétence au service de lexigence… vous présente.
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
JXDVDTEK – Une DVDthèque en Java et XML
T ravail E tude R echerche COUREUX Éric DUCK Christian ZENGERLÉ Olivier COUREUX Éric DUCK Christian ZENGERLÉ Olivier EncadrantsEncadrants M. Crescenzo.
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
L’exécution des jets Septembre /09/2009 Niveau 3 – séance 2.
Lexique des manœuvres de base pour utiliser à PowerPoint
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
et évaluation des compétences
1 B Système Enjeux et principes Cours DESS Nantes 04 Décembre 2002 Didier ESSAME.
Conception d’une application de gestion de fiches études
Tutoriel pour l’utilisation de
Réalité virtuelle et interactions avec un individu
MasterMind en spécialité i.s.n.
Interface Homme Machine IHM Pro
MAGNIN Pierre 2 MIC D MAILLARD Adrien 2 MIC D Soutenance le 17/06/09.
Présentation du SVI - DELSOL Mikaël
Projet .NET : Projet GEn A4RIL
Mise en situation... m g l = 1 m l2 = 1 Positions: Vitesses:
Python La structure itérative
Projet de Compilation Manuel VACELET, Jean Pierre CAURIER, Gaël COLLE,
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
Etude de cas : buffer clavier
2 TP avec l ’aide d ’un modeleur 3D :
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
IGL301 - Spécification et vérification des exgiences 1 Chapitre 1 Introduction (ref : Bray chapitre 1)
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
Apprendre à programmer en créant un jeu video avec Scratch
Notre calendrier français MARS 2014
Portail CVM Vision pédagogique.
Définition Utilisation Définition
Projet de Master première année 2007 / 2008
Avec Présenté par Bastien Hugues Gaultier Garnier Marc Mittler Tuteur
LA GESTION COLLABORATIVE DE PROJETS Grâce aux outils du Web /03/2011 Académie de Créteil - Nadine DUDRAGNE 1.
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
1 Modèle pédagogique d’un système d’apprentissage (SA)
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
chapitre -1- OPERATIONS [B] REGLES DE PRIORITE (f n°103) lundi 15 septembre 2014  rappels de 6°  du nouveau en 5°  applications  exercices  Page.
Apprendre à programmer en créant un jeu video avec Scratch
Outil de gestion des cartes grises
Septembre Semaines du 2 au 13 septembre DATECOURSEXERCICESEXERCICES à fairePOUR le Jeudi 5 Vendredi 6 Lundi 9 Prise de contacts. Programme ISN. Déroulement.
EXIGE Un avenir dans le web....
LES PILES ET FILES.
UTILISATION DE MIOGA Patrick LE DELLIOU
1. 1.Présentation 2. 2.Recherche 3. 3.Création 4. 4.Elaboration 5. 5.Démonstration 6. 6.Conclusion Réalisation d’un site web pour l’association « Les passeurs.
Algorithmique et programmation (1)‏
PRESTO Programme d’étude de séries temporelles Projet 4 ème année Jean-Frédéric Berthelot Paul-Alain Bugnard Camille Capelle Sébastien Castiel.
Soutenance ProJet Individuel
LEMKE LaurentBITSCH José TERRIER VincentLAALA Yoann MONTAVONT GuillaumeBRIBI Mohamed 1.
Traitement de texte +.
En route vers le déploiement . . .
Informatique et Sciences du Numérique
Dreamweaver MX Jauneau Marie Claude-Antoine Zarate.
Dreamweaver 2 Feuilles de Style CSS Formulaires Calques Comportements
Transcription de la présentation:

Projet Informatique (CSC 3502) Développement d’un jeu de combat 2D de type arcade Étudiants : Valérie BRANCHE Jacqueline TAN Tian Sheng TAN Muqiu ZHENG Encadrant : Sébastien LERICHE du département informatique Lundi 02 Juin 2008

Plan de présentation 1. Présentation du sujet 2.1 Le site web : Son contenu et son codage 2.2 Le site web : Aperçu 3. Installation et appréhension de la SDL 4. Principe du chargement d’image 5. Gestion du temps 6. Règles d’animations et de mouvements

Plan de présentation 7. Boucle locale 8. Algorithme général 9. Esthétique du jeu 10. Critiques du résultat 11. Propositions d’évolution 12. Conclusion

1. Présentation du sujet Concevoir un jeu de combat 2D de type arcade dans l’esprit d’un Street Fighter 2 joueurs contrôlent chacun un personnage par l’intermédiaire du clavier et de l’écran Le programme doit respecter des règles d’animations et de mouvements bien définies

1. Présentation du sujet Contraintes de réalisations Jeu portable sur tout système d’exploitation Langage C Code sous licence GNU/GPL Exigences de qualité requises Documentation Cycle en V Site Web

2.1 Le site Web : son contenu et son codage Contient les documents relatifs au projet (planning, cahier des charges, …), les comptes-rendus des réunions, les codes sources, une présentation de l’équipe. Codage manuel en utilisant le langage HTML Utilisation de frames pour un menu fixe sur la gauche http://site.voila.fr/piarcade/index.html 6

2.2 Le site web : Aperçu 7

3. Installation et apprentissage de la SDL Nécessité d’installer un compilateur (Microsoft Visual C++ 2008 Express Edition) Téléchargement de la bibliothèque sur un site consacré à la SDL www.libsdl.org Apprentissage de la SDL grâce aux tutoriaux sur le site du zéro : Ouvrir une fenêtre Manipuler des surfaces Charger une image …

4. Principe de chargement d’une image SDL_Surface *ecran = NULL, *imageDeFond = NULL; SDL_Rect positionFond; positionFond.x = 0; // pour positionner notre image positionFond.y = 0; SDL_Init(SDL_INIT_VIDEO); // Chargement du système vidéo /* Ouverture d’une fenêtre en mémoire vidéo */ ecran = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE); /* Chargement d'une image dans une surface */ imageDeFond = IMG_Load("image.png");

4. Principe de chargement d’une image /* On copie par-dessus l'écran */ SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond); /* Mise à jour de l’écran */ SDL_Flip(ecran); /* Libération de la surface */ SDL_FreeSurface(imageDeFond);  Utilisation de ce principe sur nos sprites avec des tableaux d’images et des compteurs d’images

5. Gestion du temps SDL_Delay (40) : permet d’attendre 40 millisecondes avant de renvoyer l’image.  On obtient alors 25 images par secondes SDL_GetTicks ( ) : permet d’obtenir le nombre de millisecondes depuis le début du jeu  Utile pour définir une durée maximale de partie à 100 sec au moyen de timers timeStart = SDL_GetTicks () timeGoing = (SDL_GetTicks () – timeStart)/1000

6. Règles d’animations et de mouvements Importance de définir les propriétés et règles sur : les coups de pied/poing, les sauts, l’accroupissement, la défense… Exemples 3 niveaux de coups de pied/poing Un mouvement est intégralement exécuté avant de pouvoir en exécuter un nouveau Impossibilité de se déplacer en position accroupie

en fonction des combinaisons de touches 7. Boucle locale Forme initiale while( ) { switch ( ) case( touche “ ” enfoncée ) for ( ) // on parcourt les sprites affichage SDL_Flip( ) ; SDL_Delay( ) ; }  Problème : nécessite d’étudier tous les sous-cas en fonction des combinaisons de touches

7. Boucle locale Solution apportée Définir une variable « état du personnage » au sein de la structure de donnée associée au personnage typedef enum {STILL, JUMPING, CROUCH, MIDKICK…} states Définir une variable « état du clavier » keystate = SDL_GetKeyState( NULL );

7. Boucle locale while ( ) { /* Obtenir l’état courant du clavier */ SDL_GetKeyState ( ) /* Calcul du nouvel état du personnage */ stateChangeCharacter ( ) /* Mise à jour de l’état du personnage */ updateCharacter (personnage & clavier) … /* Mise à jour de l’affichage écran */ refreshScreen ( ) }

8. Algorithme général Vérifier l’état du clavier getkeystate stateChangePlayerOne stateChangePlayerTwo updateCharacter result updateCharacterCombat printCharacter refreshScreen restartGame if 0 if 1 Vérifier l’état du clavier Calculs du nouvel état du personnage Mise à jour du nouvel état du personnage Application des règles d’arbitrage Quelques cas particuliers Chargement des sprites après mises à jour Mise à jour de l’écran ou reprise/fin de jeu

9. Esthétique du jeu Page d’accueil Module : welcome.h, welcome.c Demande au personnage s’il veut commencer ou quitter le programme Demande de rentrer les nom des personnages Module : welcome.h, welcome.c Fonction : int welcomePage ()

9. Esthétique du jeu Fin de partie Module : restart.h, restart.c Vainqueur euphorique et perdant à terre Demande aux joueurs de continuer ou quitter le jeu Module : restart.h, restart.c Fonction : int restartGame ( )

10. Critiques du résultat Les sauts Les rebonds Prise en compte prévue de la pesanteur Implémentation non aboutie Solution proposée : sauts linéaires Les rebonds Gestion prévue des rebonds Implémentation compliquée Uniquement gestion des collisions entre personnages

10. Critiques du résultat Programme non portable SDL_enableKeyRepeat ne fonctionne pas sous Windows  une de nos règles initiales d’animation n’a pas pu être appliquée Quelques problèmes d’arbitrage notamment dans le cas des sauts Jeu basique mais possibilités de l’améliorer pour le rendre plus attractif et ludique

11. Propositions d’évolutions Rendre le jeu portable Ajout de personnages supplémentaires afin de laisser le choix du personnage aux joueurs Définir des règles de jeu plus évoluées comme des parties en plusieurs tours, dans des univers différents Implémenter des « coups spéciaux » pour donner un aspect encore plus fun au jeu Définir une conception dynamique des règles d’arbitrage

12. Conclusion Développement : Application du C avec une nouvelle bibliothèque Familiarisation avec la manière d’écrire les codes pour faire des jeux vidéos Partie conception détaillée essentielle dans notre projet, autant dans sa définition que dans son implémentation.

12. Conclusion Gestion de projet : [--] Problème de communication au sein de l’équipe pendant le première moitié du projet : communication indirecte via MSN ou par mails [--] Incompatibilité d’exécution du programme sur nos différents ordinateurs : nécessité de déplacer des sous-dossiers, bugs de l’exécutable…

12. Conclusion [++] Bonne répartition des tâches selon nos aptitudes (site web, gestion de projet, programmation) [++] Respect du planning, efficacité dans la détection de problèmes et la recherche de solutions Bon avancement du projet : pas de retard pénalisant, objectifs initiaux généralement atteints et obtention d’un programme fonctionnel