ajout au rapport final des paties introduction et manuel
| After Width: | Height: | Size: 358 KiB | 
| After Width: | Height: | Size: 71 KiB | 
| After Width: | Height: | Size: 8.1 KiB | 
| After Width: | Height: | Size: 2.8 KiB | 
| After Width: | Height: | Size: 21 KiB | 
| After Width: | Height: | Size: 45 KiB | 
| After Width: | Height: | Size: 14 KiB | 
| After Width: | Height: | Size: 18 KiB | 
| After Width: | Height: | Size: 20 KiB | 
| After Width: | Height: | Size: 2.8 KiB | 
| After Width: | Height: | Size: 9.3 KiB | 
| After Width: | Height: | Size: 65 KiB | 
| After Width: | Height: | Size: 358 KiB | 
| After Width: | Height: | Size: 350 KiB | 
|  | @ -1 +1,97 @@ | ||||||
| \chapter{Introduction} | \chapter{Introduction} | ||||||
|  | 
 | ||||||
|  | \subsection {Généralités} | ||||||
|  | Dans le cadre du module Projet C.M.I du second semestre de licence 1, | ||||||
|  | nous avons développé en équipe un jeu vidéo nommé "Skizzle". | ||||||
|  | Notre équipe est composée de trois personnes, Mattéo Delabre, Maëlle Beuret | ||||||
|  |  et Rémi Cérès. | ||||||
|  | \\ | ||||||
|  | 
 | ||||||
|  | L'objectif principal de ce projet est la création d'un jeu vidéo fonctionnel. Le jeu utilise les bases d'algorithmies apprises au premier semestre ainsi que nos connaissances et | ||||||
|  | recherches personnelles.\\ | ||||||
|  | La création de ce jeu nous a permis d'acquérir des notions de la gestion de projet, ainsi que le travail en collaboration et l'apprentissage de la | ||||||
|  | communication au sein d'une équipe. | ||||||
|  | \\ | ||||||
|  | 
 | ||||||
|  | Le développement du projet s'est déroulé sur une période d'un mois et une semaine, | ||||||
|  | soit du vendredi 4 mars 2016 au lundi 11 avril 2016 inclus.\\ | ||||||
|  | Chaque vendredi, | ||||||
|  | lors de la séance de trois heures consacrée au projet C.M.I, un point était réalisé avec chaque membre de l'équipe. | ||||||
|  | Une repartition des tâches et des objectifs | ||||||
|  | à atteindre pour la semaine suivante étaient détérminés. De plus, durant la semaine nous avons communiqué afin de faciliter l'organisation, de nous coordonner et de nous entraider.\\ | ||||||
|  | 
 | ||||||
|  | Les séances de C.M.I nous ont permises de résoudre les problèmes rencontrés. | ||||||
|  | 
 | ||||||
|  | \subsection {Sujet} | ||||||
|  | Le projet a pour sujet la réalisation d'un jeu vidéo | ||||||
|  | fonctionnel en groupe ou en individuel.\\ | ||||||
|  | Le choix du jeu et du langage de programmation est libre; cela peut être une création ou bien un jeu existant.\\ | ||||||
|  | 
 | ||||||
|  | Notre choix s'est porté sur un jeu avec un principe original inspiré des jeux de | ||||||
|  | plate-forme, de coopération et de réflexion. Nous l'avons appelé "Skizzle".\\ | ||||||
|  | 
 | ||||||
|  | Il s’agit pour deux joueurs de faire traverser deux | ||||||
|  | balles à travers un niveau. | ||||||
|  | La conception du jeu s’appuie sur des éléments physiques pour proposer des | ||||||
|  | niveaux sous forme de casse-têtes, dans lesquels les deux participants doivent | ||||||
|  | s’entraider et réfléchir pour parvenir à la fin. | ||||||
|  | 
 | ||||||
|  | %Skizzle est constitué d'une suite de niveaux dont le but est de tous les | ||||||
|  | %terminer. Chaque niveaux est composé de bloc pouvant avoir des interaction avec | ||||||
|  | %les balle ou sur la physique du jeu, comme par exemple modifié le sens de | ||||||
|  | %la gravité.\\ | ||||||
|  | %Le ou les deux joueurs contrôle chacun une balle qu'ils peuvent uniquement | ||||||
|  | %déplacer vers la droite et la gauche de l'écran. Tous les élément du jeux, | ||||||
|  | %c'est a dire les blocs et les balles peuvent être aimantés.\\ | ||||||
|  | % | ||||||
|  | %Dans chaque niveaux le ou les joueurs doivent réfléchir et d’entraidé en | ||||||
|  | %s’appuyant sur les différentes interaction possible avec la physique du jeu | ||||||
|  | %pour parvenir a la fin. | ||||||
|  | \subsection {Cahiers des charges} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | \subsubsection{Généralités} | ||||||
|  | 
 | ||||||
|  |     Fonctionalités | ||||||
|  |     \begin {itemize} | ||||||
|  |         \item Divertir et faire réfléchir les utilisateurs, | ||||||
|  |         \item Multi-plateformes (Linux, OS X, Windows). | ||||||
|  |     \end {itemize} | ||||||
|  |     Contraintes | ||||||
|  |     \begin{itemize} | ||||||
|  |         \item Interface pas adaptée au tactile, | ||||||
|  |         \item Présence de deux joueurs. | ||||||
|  |     \end {itemize} | ||||||
|  | 
 | ||||||
|  | \subsubsection {Menu} | ||||||
|  | 
 | ||||||
|  | \begin{itemize} | ||||||
|  |     \item Permet à l'utilisateur de choisir son mode de jeu (éditer/jouer), | ||||||
|  |     \item Permet d'afficher la liste des niveaux de maniere dynamique et automatique, | ||||||
|  |     \item Possibilité d'utiliser aussi bien la souris que le clavier. | ||||||
|  | \end{itemize} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | \subsubsection{Moteur physique} | ||||||
|  | 
 | ||||||
|  | \begin{itemize} | ||||||
|  |     \item Gestion de la force d'interaction coulombienne, | ||||||
|  |     \item Gestion de la force de gravité, | ||||||
|  |     \item Gestion de la force de frottement, | ||||||
|  |     \item Gestion de la force de réaction et de collision. | ||||||
|  | \end{itemize} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | \subsubsection {Éditeur} | ||||||
|  | 
 | ||||||
|  | \begin {itemize} | ||||||
|  |     \item Permet de créer un niveau, | ||||||
|  |     \item Permet de modifier un niveau existant, | ||||||
|  |     \item Permet de placer tous les types d'objets, | ||||||
|  |     \item Permet de placer la position initiale des joueurs, | ||||||
|  |     \item Permet de modifier la polarité des objets, | ||||||
|  |     \item Permet de sauvegarder un niveau modifié ou créé, | ||||||
|  |     \item Permet de tester le niveau créé directement dans l'éditeur, | ||||||
|  |     \item Permet de modifier la taille et la forme de la zone jouable. | ||||||
|  | \end {itemize} | ||||||
|  |  | ||||||
|  | @ -1 +1,191 @@ | ||||||
| \chapter{Manuel d'utilisation} | \chapter{Manuel d'utilisation} | ||||||
|  | 
 | ||||||
|  | \subsection {Principe} | ||||||
|  | Deux joueurs doivent s'entraider pour faire avancer leur balle à travers | ||||||
|  | des niveaux. Pour cela les joueurs exploitent différents mécanismes | ||||||
|  | physiques. | ||||||
|  | \\ | ||||||
|  | 
 | ||||||
|  | Le jeu est constitué de niveaux, chaque niveau | ||||||
|  | étant représentés par une grille de blocs en deux dimensions. Les blocs interagissent | ||||||
|  | avec les balles et la physique du jeu comme défini dans les sections \ref{OB}. | ||||||
|  | \\ | ||||||
|  | 
 | ||||||
|  | Les joueurs valident un niveau en faisant parvenir leurs | ||||||
|  | balles sur un bloc d'arrivée. Ils terminent ainsi le niveau, le but étant de tous | ||||||
|  | les achever. | ||||||
|  | 
 | ||||||
|  | \subsection {Menu de sélection} | ||||||
|  | 
 | ||||||
|  | \subsubsection{Menu principal} | ||||||
|  | 
 | ||||||
|  | Au lancement du jeu le menu principal apparait : | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | \begin{figure} [h] | ||||||
|  |     \centerline {\includegraphics[width=13cm]{figures/menu_principale.png}} | ||||||
|  |     \caption {Menu principal} | ||||||
|  |     \label {fig:MP} | ||||||
|  | \end{figure} | ||||||
|  | 
 | ||||||
|  | \noindent Ce menu [\ref{fig:MP}] se compose de quatre boutons:\\ | ||||||
|  | \begin {itemize} | ||||||
|  | \item \bf Le bouton jouer [\ref{fig:MJ}]\\ | ||||||
|  | \end {itemize} | ||||||
|  | 
 | ||||||
|  | Il permet d'accéder au menu de sélection des niveaux | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %\item règles du jeu : affiche les règles du jeu. | ||||||
|  | %\item Éditeur : permet de crée un nouveau niveau ou de modifier un niveau existant. | ||||||
|  | %\item Quitter : permet de quitter le jeu.\\ | ||||||
|  | 
 | ||||||
|  | \newpage | ||||||
|  | 
 | ||||||
|  | \begin{figure} [!h] | ||||||
|  |     \centerline {\includegraphics[width=13cm]{figures/menu_jouer.png}} | ||||||
|  |     \caption {Menu jouer} | ||||||
|  |     \label {fig:MJ} | ||||||
|  | \end{figure} | ||||||
|  | 
 | ||||||
|  | \noindent Ce menu [\ref{fig:MJ}] se compose de deux types de boutons : les boutons niveaux permettent aux joueurs de choisir un espace de jeu et | ||||||
|  | le bouton retour de revenir vers le menu principal [\ref{fig:MP}].\\ | ||||||
|  | 
 | ||||||
|  | \begin {itemize} | ||||||
|  | \item \bf Le bouton règles du jeu. | ||||||
|  | \end {itemize} | ||||||
|  | 
 | ||||||
|  | Ce bouton affiche les règles du jeu. | ||||||
|  | \\ | ||||||
|  | \\ | ||||||
|  | 
 | ||||||
|  | \begin {itemize} | ||||||
|  | \item \bf Le bouton éditeur. | ||||||
|  | \end {itemize} | ||||||
|  | 
 | ||||||
|  | Ce bouton permet de créer un nouveau niveau ou de modifier un niveau existant. | ||||||
|  | 
 | ||||||
|  | \newpage | ||||||
|  | 
 | ||||||
|  | \begin{figure} [!h] | ||||||
|  |     \centerline {\includegraphics[width=13cm]{figures/menu_editeur.png}} | ||||||
|  |     \caption {Menu éditeur} | ||||||
|  |     \label {fig:ME} | ||||||
|  | \end{figure} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | \noindent Ce menu [\ref{fig:ME}] se compose de trois types de boutons : Créer un nouveau niveau, éditer un niveau existant, | ||||||
|  |  et retour qui renvoie vers le menu principal [\ref{fig:MP}].\\ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | \noindent Les touches \Touche{$\uparrow$} , \Touche{$\downarrow$} ou | ||||||
|  | le passage de la souris sur un des boutons permettent la séléction d'un élément du menu. | ||||||
|  | le bouton sélectionné se souligne.\\ | ||||||
|  | 
 | ||||||
|  | \noindent La touche \Touche{Enter} ou un clic avec la souris permettent de valider le choix.\\ | ||||||
|  | 
 | ||||||
|  | \noindent Les touches \Touche{Backspace} et \Touche{Echap} permettent de revenir au menu précédent. \\ | ||||||
|  | 
 | ||||||
|  | \subsection {Objets} | ||||||
|  | 
 | ||||||
|  | \label {OB} | ||||||
|  | 
 | ||||||
|  | \subsubsection{Balles} | ||||||
|  | 
 | ||||||
|  | \noindent {\raisebox{-.4\height}{\includegraphics[width=23px]{figures/ball_1.png}} Les balles sont controlées par les joueurs. \\ | ||||||
|  | 
 | ||||||
|  | \subsubsection{Polarité} | ||||||
|  | 
 | ||||||
|  | \noindent {\raisebox{-.4\height}{\includegraphics[width=23px]{figures/block_blue.png}} Les objets de couleurs bleus repoussent tous ceux de la même couleur et attirent les objets de couleurs rouges. \\ | ||||||
|  | 
 | ||||||
|  | \noindent {\raisebox{-.4\height}{\includegraphics[width=23px]{figures/block_red.png}} Les objets de couleurs rouges repoussent tous ceux de la même couleur et attirent les objets de couleurs bleus. \\ | ||||||
|  | 
 | ||||||
|  | \subsubsection{Blocs} | ||||||
|  | 
 | ||||||
|  | \noindent {\raisebox{-.4\height}{\includegraphics[width=23px]{figures/block.png}} Le bloc de base ne réalise aucune action particulière. \\ | ||||||
|  | 
 | ||||||
|  | \noindent \raisebox{-.4\height}{\includegraphics[width=23px]{figures/block_caisse.png}} La caisse est un bloc qui peut être poussé. \\ | ||||||
|  | 
 | ||||||
|  | \noindent \raisebox{-.4\height}{\includegraphics[width=23px]{figures/block_gravity_south.png}} Le bloc de gravité modifie le sens de la gravité lorsqu'un joueur ou une caisse rentre en collision avec lui. \\ | ||||||
|  | 
 | ||||||
|  | \noindent \raisebox{-.4\height}{\includegraphics[width=23px]{figures/block_polarity.png}} Le bloc inverseur de polarité inverse la polarité de la balle qui rentre en collision avec lui. \\ | ||||||
|  | 
 | ||||||
|  | \noindent \raisebox{-.4\height}{\includegraphics[width=23px]{figures/block_dead.png}} Le bloc de mort fait perdre la partie si un des deux joueurs rentrent en collision avec lui. \\ | ||||||
|  | 
 | ||||||
|  | \noindent \raisebox{-.3\height}{\includegraphics[width=23px]{figures/block_end_2.png}} Le bloc d'arrivée fait gagner le joueur qui rentre en collision avec lui. \\ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | \subsection {Jeux} | ||||||
|  | 
 | ||||||
|  | \label {joué} | ||||||
|  | 
 | ||||||
|  | Les joueurs ne peuvent déplacer leurs balles que vers la gauche ou la droite.\\ | ||||||
|  | Le joueur 1 utilise \Touche{$\rightarrow$} pour se déplacer vers la droite et \Touche{$\leftarrow$} pour se déplacer vers la gauche.\\ | ||||||
|  | Le joueur 2 utilise \Touche{D} pour se déplacer vers la droite et \Touche{Q} pour se déplacer vers la gauche.\\ | ||||||
|  | 
 | ||||||
|  | Les joueurs peuvent mettre le jeu en pause avec la touche \Touche{Échap}, ou bien quitter le niveau en appuyant sur \Touche{Espace}. | ||||||
|  | 
 | ||||||
|  | Un joueur peut mourrir de deux façons; soit en rentrant en collision avec un bloc de mort \raisebox{-.4\height}{\includegraphics[width=15px]{figures/block_dead.png}} soit en sortant de la zone jouable.\\ | ||||||
|  | \\ | ||||||
|  | 
 | ||||||
|  | \subsection {Editeur} | ||||||
|  | 
 | ||||||
|  | \begin{figure} [!h] | ||||||
|  |     \centerline {\includegraphics[width=13cm]{figures/editeur.png}} | ||||||
|  |     \caption {Éditeur} | ||||||
|  |     \label {fig:ED} | ||||||
|  | \end{figure} | ||||||
|  | 
 | ||||||
|  | \subsubsection {Gestion des objets} | ||||||
|  | 
 | ||||||
|  | La séléction de l'objet s'éffectue dans la barre latérale droite de la fenêtre à l'aide de la souris. [\ref{fig:ED}] \\ | ||||||
|  | Un clic avec le bouton gauche de la souris permet de le placer sur un zone libre. | ||||||
|  | Le maintien du clic gauche permet de placer plusieurs objets à la fois.\\ | ||||||
|  | 
 | ||||||
|  | Pour modifier la polarité d'un objet, le curseur doit être placé sur celui-ci. La touche \Touche{Ctrl} doit être enfoncée tout en faisant glisser la mollette de la souris, ou bien en faisant glisser deux doigts sur le pavé tactile vers le haut ou le bas. \\ | ||||||
|  | \\ | ||||||
|  | 
 | ||||||
|  | La selection d'un objet se fait avec la touche \Touche{Ctrl} et un clic sur celui-ci. Une multi-sélection peut être réalisée en cliquant sur plusieurs objets tout en maintenant la touche \Touche{Ctrl} enfoncée. \\ | ||||||
|  | La réalisation d'une sélection rectangulaire est possible en maintenant la touche \Touche{Shift} et en faisant glisser la souris avec le clic gauche enfoncé sur la zone à sélectionner. \\ | ||||||
|  | Un objet sélectionné a des bordures rouges. [\ref{fig:BBS}]\\ | ||||||
|  | 
 | ||||||
|  | \begin{figure} [!h] | ||||||
|  |     \centerline {\includegraphics[width=25px]{figures/block_selection.png}} | ||||||
|  |     \caption {Bloc de base sélectionné} | ||||||
|  |     \label {fig:BBS} | ||||||
|  | \end{figure} | ||||||
|  | 
 | ||||||
|  | La suppression d'un objet s'effectue en cliquant dessus avec le bouton droit de la souris. | ||||||
|  | Plusieurs objets peuvent être supprimés aprés leurs séléctions en appuyant sur la touche \Touche{Suppr}. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | \subsubsection {Compte à rebours} | ||||||
|  | 
 | ||||||
|  | Le compte à rebours se situe en haut au centre de le fenêtre. Durant la partie s'il arrive à 0, les joueurs meurent et la partie est perdue.\\ | ||||||
|  | 
 | ||||||
|  | La valeur du compte à rebours peut être modifiée dans l'éditeur en cliquant sur les fléches se situant à coté. | ||||||
|  | Il est également possible de placer la souris sur ce dernier en faisant glisser la mollette ou deux doigts sur le pavé tactile vers le haut ou le bas. \\ | ||||||
|  | 
 | ||||||
|  | \subsubsection {Zone de jeu} | ||||||
|  | La zone jouable est représentée dans l'éditeur par un polygone rouge [\ref{fig:ED}] composé de quatre points. | ||||||
|  |  Chacun de ces points peuvent être déplacés en cliquant dessus afin de modifier la taille et la forme de la zone. | ||||||
|  | 
 | ||||||
|  | \subsubsection {Gestion de la caméra} | ||||||
|  | Le déplacement de la caméra s'effectue en plaçant la souris vers une bordure de la fenêtre. | ||||||
|  | La molette de la souris peut être utilisée pour un défilement vertical ou horizontal si la touche \Touche{Shift} est enfoncée. | ||||||
|  | \\ | ||||||
|  | 
 | ||||||
|  | il es possible également de faire glisser deux doigts sur le pavé tactile afin de déplacer la caméra dans la direction désirée.\\ | ||||||
|  | 
 | ||||||
|  | \subsubsection {Commandes générales} | ||||||
|  | 
 | ||||||
|  | Il est possible de tester le niveau à tout moment en appuyant sur la touche \Touche{Espace}. | ||||||
|  | Pour revenir à l'édition il faut appuyer de nouveau sur \Touche{Espace}.\\ | ||||||
|  | \\ | ||||||
|  | 
 | ||||||
|  | Afin de sauvegarder le niveau il est necessaire de réaliser la combinaison de touches suivantes : \Touche{Ctrl} + \Touche {S}. (en mode édition).\\ | ||||||
|  | \\ | ||||||
|  | 
 | ||||||
|  | Pour quitter l’éditeur et revenir au menu la touche \Touche{Échap} doit être utilisé. | ||||||
|  |  | ||||||