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

1 Projet Informatique (CSC 3502) Développement dun jeu de combat 2D de type arcade Étudiants : Valérie BRANCHE Jacqueline TAN Tian Sheng TAN Muqiu ZHENG.

Présentations similaires


Présentation au sujet: "1 Projet Informatique (CSC 3502) Développement dun jeu de combat 2D de type arcade Étudiants : Valérie BRANCHE Jacqueline TAN Tian Sheng TAN Muqiu ZHENG."— Transcription de la présentation:

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

2 2 Plan de présentation 1. Présentation du sujet 2.1Le 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 dimage 5.Gestion du temps 6. Règles danimations et de mouvements

3 3 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

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

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

6 6 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 6

7 7 2.2 Le site web : Aperçu 7

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

9 9 4. Principe de chargement dune 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 dune 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");

10 10 4. Principe de chargement dune 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 dimages et des compteurs dimages

11 11 5. Gestion du temps SDL_Delay (40) : permet dattendre 40 millisecondes avant de renvoyer limage. On obtient alors 25 images par secondes SDL_GetTicks ( ) : permet dobtenir 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

12 12 6. Règles danimations et de mouvements Importance de définir les propriétés et règles sur : les coups de pied/poing, les sauts, laccroupissement, 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

13 13 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

14 14 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 );

15 15 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 laffichage écran */ refreshScreen ( ) }

16 16 8. Algorithme général 1. Vérifier létat du clavier 2. Calculs du nouvel état du personnage 3. Mise à jour du nouvel état du personnage 4. Application des règles darbitrage 5. Quelques cas particuliers 6. Chargement des sprites après mises à jour 7. Mise à jour de lécran ou reprise/fin de jeu getkeystate stateChangePlayerOne stateChangePlayer Two updateCharacter result updateCharacterCombat printCharacter refreshScreen restartGame if 0 i f 1 i f 0

17 17 9. Esthétique du jeu Page daccueil - Demande au personnage sil veut commencer ou quitter le programme - Demande de rentrer les nom des personnages Module : welcome.h, welcome.c Fonction : int welcomePage ()

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

19 Critiques du résultat Les sauts 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

20 Critiques du résultat Programme non portable SDL_enableKeyRepeat ne fonctionne pas sous Windows une de nos règles initiales danimation na pas pu être appliquée Quelques problèmes darbitrage notamment dans le cas des sauts Jeu basique mais possibilités de laméliorer pour le rendre plus attractif et ludique

21 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 darbitrage

22 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.

23 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é dexécution du programme sur nos différents ordinateurs : nécessité de déplacer des sous-dossiers, bugs de lexécutable…

24 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 dun programme fonctionnel


Télécharger ppt "1 Projet Informatique (CSC 3502) Développement dun jeu de combat 2D de type arcade Étudiants : Valérie BRANCHE Jacqueline TAN Tian Sheng TAN Muqiu ZHENG."

Présentations similaires


Annonces Google