fix typo
This commit is contained in:
parent
ccd183198e
commit
3b361dea6e
1 changed files with 11 additions and 11 deletions
|
@ -43,7 +43,7 @@
|
|||
\begin{itemize}
|
||||
\item Cette objectif a été remplie
|
||||
\item Des cubes noir entoure le plateau de jeu
|
||||
\item Des blocs gris parcème l'intérieur du plateau
|
||||
\item Des blocs gris parsème l'intérieur du plateau
|
||||
\item Des blocs marrons avec une texture différente représente les blocs cassable par les joueurs et sont placés aléatoirement sur le plateau
|
||||
\end{itemize}
|
||||
|
||||
|
@ -87,7 +87,7 @@
|
|||
J'active par défaut les textures et les ombrages sur tous les objets, ainsi que la synchronisation verticale.
|
||||
\vspace{10pt}
|
||||
|
||||
La structure du joueur est composé des coordonées spatiale \texttt{x, y, z} ainsi que sa position dans le plateau, l'heure à laquelle sa dernière bombe (\texttt{0} quand pas de bombe) à été posée et la position de sa bombe (\texttt{-1} quand pas de bombe)
|
||||
La structure du joueur est composé des coordonnées spatiale \texttt{x, y, z} ainsi que sa position dans le plateau, l'heure à laquelle sa dernière bombe (\texttt{0} quand pas de bombe) à été posée et la position de sa bombe (\texttt{-1} quand pas de bombe)
|
||||
\begin{center}\begin{minipage}{0.5\textwidth}
|
||||
\begin{minted}[linenos]{c}
|
||||
typedef struct perso_t {
|
||||
|
@ -100,7 +100,7 @@ typedef struct perso_t {
|
|||
\end{minipage}\end{center}
|
||||
\vspace{10pt}
|
||||
|
||||
Les dimensions du plateau sont choisis aléatoirement mais le plateau est toujours un carré. Les dimensions varient entre \texttt{15} et \texttt{25} cube de côtés.
|
||||
Les dimensions du plateau sont choisies aléatoirement mais le plateau est toujours un carré. Les dimensions varient entre \texttt{15} et \texttt{25} cube de côté.
|
||||
\begin{center}\begin{minipage}{0.5\textwidth}
|
||||
\begin{minted}[linenos]{c}
|
||||
srand(time(NULL));
|
||||
|
@ -110,7 +110,7 @@ _plateauH = _plateauW;
|
|||
\end{minipage}\end{center}
|
||||
\vspace{10pt}
|
||||
|
||||
Les joueurs sont placés de façon a être éloignés l'un de l'autre. Le joueur A est placé en bas à gauche du plateau et le joueur B en haut à droite.
|
||||
Les joueurs sont placés de façon à être éloignés l'un de l'autre. Le joueur A est placé en bas à gauche du plateau et le joueur B en haut à droite.
|
||||
\begin{center}\begin{minipage}{0.8\textwidth}
|
||||
\begin{minted}[linenos]{c}
|
||||
/* Joueur A */
|
||||
|
@ -155,7 +155,7 @@ lookAt(
|
|||
\end{itemize}
|
||||
\vspace{10pt}
|
||||
|
||||
Les collisions sont gérés grâce à la grille, lorsque l'on essaie de se déplacer, on vérifie qu'il n'y a pas de cube là où on veut aller. Pour cela on calcule la position des blocs à gauche, à droite, au dessus et en dessous du joueur.
|
||||
Les collisions sont gérées grâce à la grille, lorsque l'on essaie de se déplacer, on vérifie qu'il n'y a pas de cube là où on veut aller. Pour cela on calcule la position des blocs à gauche, à droite, au-dessus et en dessous du joueur.
|
||||
\begin{center}\begin{minipage}{0.9\textwidth}
|
||||
\begin{minted}[linenos]{c}
|
||||
/* Exemple vérification pour aller à droite pour le joueur A
|
||||
|
@ -172,17 +172,17 @@ if(_vkeyboard[VK_RIGHT])
|
|||
\end{minipage}\end{center}
|
||||
\vspace{10pt}
|
||||
|
||||
Comme dis ci-dessus, la collision est géré grâce à la grille, alors les joueurs doivent aussi être dans la grille, même s'il se déplace de façon fluide. A chaque fois que le centre de gravité du joueur change de case, son numéro change aussi de case dans la grille.
|
||||
Comme dit ci-dessus, la collision est gérée grâce à la grille, alors les joueurs doivent aussi être dans la grille, même s'il se déplace de façon fluide. A chaque fois que le centre de gravité du joueur change de case, son numéro change aussi de case dans la grille.
|
||||
\vspace{10pt}
|
||||
|
||||
La bombe est rattachée au joueur et il n'y peut y avoir qu'une bombe à la fois par joueur sur le terrain. Ces informations sont stockés dans la structure du joueur. \texttt{bombe} correspond à l'heure où la bombe a été posé sur le terrain et \texttt{bombePos} est la position de la bombe sur la grille.
|
||||
Une bombe reste 3 secondes sur le terrain. La première seconde elle est marron, puis elle devient orange au bout de la 2\up{ème} seconde. A partir de la 3\up{ème} seconde elle devient rouge et une demi-seconde plus tard elle grossie soudainement, puis grossi encore progressivement pendant une dernière demi-seconde avant de disparaître en supprimant les cubes "en bois" qui était dans son rayon. Elle arrête aussi la partie si un joueur a été touché par le rayon de l'explosion et le résultat est afficher dans le terminal.
|
||||
La bombe est rattachée au joueur et il n'y peut y avoir qu'une bombe à la fois par joueur sur le terrain. Ces informations sont stockées dans la structure du joueur. \texttt{bombe} correspond à l'heure où la bombe a été posée sur le terrain et \texttt{bombePos} est la position de la bombe sur la grille.
|
||||
Une bombe reste 3 secondes sur le terrain. La première seconde elle est marron, puis elle devient orange au bout de la 2\up{ème} seconde. A partir de la 3\up{ème} seconde elle devient rouge et une demi-seconde plus tard elle grossit soudainement, puis grossit encore progressivement pendant une dernière demi-seconde avant de disparaître en supprimant les cubes "en bois" qui était dans son rayon. Elle arrête aussi la partie si un joueur a été touché par le rayon de l'explosion et le résultat est affiché dans le terminal.
|
||||
Le programme détecte les cubes grâce à la grille :
|
||||
\begin{center}\begin{minipage}{0.9\textwidth}
|
||||
\begin{minted}[linenos]{c}
|
||||
/* Exemple détection si un cube est dans le rayon de
|
||||
* l'explosion dans un rayon i dans la direction vers le haut
|
||||
* à gauche (4 signifique le cube destructible) */
|
||||
* à gauche (4 signifie que le cube destructible) */
|
||||
if(_plateau[_joueurA.bombePos - _plateauW - i] == 4)
|
||||
_plateau[_joueurA.bombePos - _plateauW - i] = 0;
|
||||
\end{minted}
|
||||
|
@ -221,7 +221,7 @@ transform_n_rasterize(_sphere, nmv, projection_matrix);
|
|||
\end{minipage}\end{center}
|
||||
\vspace{10pt}
|
||||
|
||||
Les touches sont gérés grâce aux méthodes \texttt{keyd} (quand une touche est pressée) et \texttt{keyu} (quand une touche n'est plus pressée) avec une \texttt{enum} qui repertorie les touches utilisés et une liste qui garde l'état des touches (si elle est actuellement pressée ou non)
|
||||
Les touches sont gérés grâce aux méthodes \texttt{keyd} (quand une touche est pressée) et \texttt{keyu} (quand une touche n'est plus pressée) avec une \texttt{enum} qui répertorie les touches utilisés et une liste qui garde l'état des touches (si elle est actuellement pressée ou non)
|
||||
\begin{center}\begin{minipage}{0.9\textwidth}
|
||||
\begin{minted}[linenos]{c}
|
||||
/* Exemple */
|
||||
|
@ -253,7 +253,7 @@ void keyd(int keycode) {
|
|||
\end{minipage}\end{center}
|
||||
\vspace{10pt}
|
||||
|
||||
A la sortie du programme on libère tout nos éléments de la mémoire.
|
||||
A la sortie du programme on libère tous nos éléments de la mémoire.
|
||||
|
||||
\section{Piste d'amélioration}
|
||||
J'aurais aimé pouvoir modéliser les joueurs avec un cône au lieu d'un simple cube pour le corps.
|
||||
|
|
Reference in a new issue