Stick Fighter - Quentin Nivelais

Transcription

Stick Fighter - Quentin Nivelais
2014-2015
STICK FIGHTER
PROJET ISN 2015
QUENTIN NIVELAIS
ISN
Aristide briand
STICK FIGHTER
TABLE DES MATIERES
Début .......................................................................................................................................................... 2
I.
A. Première phase de réflexion ........................................................................................... 2
B.
Présentation de processing ............................................................................................. 2
C.
Brainstorming .................................................................................................................. 3
D. Répartition des taches..................................................................................................... 4
Programmation .................................................................................................................................... 4
II.
A. Le lancement ................................................................................................................... 4
B.
Première difficulté ........................................................................................................... 5
C.
Création des HitBox ......................................................................................................... 6
D. Les collisions .................................................................................................................... 7
III.
Conclusion........................................................................................................................................... 8
QUENTIN NIVELAIS
1
STICK FIGHTER
DEBUT
PREMIERE PHASE DE REFLEXION
Pour commencer ce projet, l’idée d’un jeu de combat ne nous est pas venue
directement, nous avons d’abord pensé à utiliser du openData (Information public
disponibles gratuitement) pour les cinémas, ou alors un générateur de sudoku, mais au final
nous avons eu cette idée.
La plateforme de programmation nous étant imposée, nous étions obligés de partir
programmer sous processing, ce qui limite un peu le code, et empêche de pouvoir
développer complètement notre idée.
PRESENTATION DE PROCESSING
Processing nous permet de changer de langage de programmation grâce à ce bouton
Nous pouvons lancée et arrête le sketch (projet en création) avec ces boutons
Nous pouvons aussi importer des librairies facilement :
QUENTIN NIVELAIS
2
STICK FIGHTER
Un débogueur qui marche relativement bien et aussi disponible.
BRAINSTORMING
Nous avons donc commencé à faire un brainstorming autour de point, la première
chose qui nous est venue à l’idée en disant jeux de combat, c’était street fighter, et mortal
kombat, nous sommes donc partis la dessus inspirés des mécaniques de ce jeux (les
mouvements, les collisions, les barres de vie …)
QUENTIN NIVELAIS
3
STICK FIGHTER
Pour développer notre idée de base nous avons utilisé l’utilitaire en ligne MindMup.
Celui-ci nous a permis de mettre au clair toutes nos idées.
REPARTITION DES TACHES
Nous avions les idées, il ne nous manquait plus qu’à répartir les rôles, pour cela, nous avons
utilisé un deuxième utilitaire en ligne : scrumblr.
Nous avons créé des colonnes pour chaque personne, puis des post-it pour chaque tache à
effectuer, nous avons donc pu positionner les post-it dans chaque colonne.
PROGRAMMATION
LE LANCEMENT
QUENTIN NIVELAIS
4
STICK FIGHTER
Au tout début, sumeyya c’est lancée sur le menu, yoan sur l’affichage, et moi je me
suis occupé de faire les mouvements, avec des petits carrés au début, en attendant les
animations du yoan. Les mouvements fonctionnaient relativement bien, mais j’avais pas mal
de problèmes liés au saut des personnages, en gros quand je lançais les sauts, les
personnages retombaient perpétuellement, ou si on restait appuyé sur la touche, ils
montaient ver l’infini.
PREMIERE DIFFICULTE
Un des points le plus durs dans l’animation, c’était de pouvoir faire bouger les deux
carrés en même temps (en gros si les deux joueurs appuyaient sur la touche « d » et la
touche droite, que les deux carrés bougent en même temps), que j’ai réussi à résoudre, en
modifiant les variables utilisées, car 2 variables se rejoignaient, donc J’ai dissocié
complètement les variables, comme ça les mouvement étaient bien indépendants, il y a
encore un bug persistant, si les joueurs restent appuyer sur la touche, un seul des deux ne
peut bouger. J’ai aussi initialisé les touches pour les attaques, yoan n’avait plus qu’à mettre
les fonctions à l’intérieur.
La fonction KEYPRESSED() Detecte l’appui sur une touche du clavier
Apres nous detectons quelle touch : si la touche est « q » , IF (KEY == ‘Q’)
alors on fait un mouvement a gauche, pareil pour la touche « d », sauf que
le mouvement est vers la droite
Par la suite, nous avons decidé d’enlever cette idée de saut, pour pouvoir a la fin avoir un jeux bien
finis, meme si les personnages ne peuvent pas sauter, sur un des personnages, nous avons mis une alternative
qui est une sorte de tp (teleportation) ; qui lui permet de traverser l’adversaire.
Ici j’appui plusieurs foit de suite sur la touche « d » pour aller vers la droite
QUENTIN NIVELAIS
5
STICK FIGHTER
CREATION DES HITBOX
Apres ça, j’ai commencé à regarder pour les hitbox (zone de collision des
personnage), en utilisant le plugin box2D sous processing, la librairie qui est très complexe,
j’ai regardé 3 tutoriels en anglais de l’auteur daniel shiffman pour comprendre son
fonctionnement, en fait, pour utiliser correctement cette librairie, il faut créer un monde,
dans lequel on génère des particules, sur chaque particule on associe un corps, sur ces corps
on en associe un objet qui peut bouger, ou pas, et sur ces objets, on indique si l’on veut
écouter les collisions de hitbox, et après avoir générer tout cela, on affiche la texture qui se
rajoute par-dessus le corps (au mêmes coordonnées).
Dans notre cas nous affichons les particules pour faire des tests, mais dans le
programme final, les particules ne seront pas affichées.
Voici un algorithme qui explique en bref le fonctionnement d’une particule.
Voici ce que cela donne dans le code « pur », pour simplifier la compréhension j’ai
mis en commentaire les blocs de l’algorithme.
QUENTIN NIVELAIS
6
STICK FIGHTER
LES
COLLISIONS
Ici un aperçu des collisions, quand les deux carrés se touchent un des deux carrés
devient bleu, et l’autre devient rouge.
Quand il y a de nouveau une collision le carré rouge
devient vert.
Voici un algorithme simplifié des actions effectuées lors d’une collision.
QUENTIN NIVELAIS
7
STICK FIGHTER
Voici ce que cela donne dans le code « pur », pour simplifier la compréhension j’ai
mis en commentaire les blocs de l’algorithme.
Yoan a donc eu l’ide de générer une particule (avec le corps etc…) a chaque coup, en
fonction de la position du personnage, sur les membres qui vont attaquer ; par exemple, lors
d’un coup de poing, on génère une hitbox sur le point. Vient s’ajouter à cela une sorte de
hitbox permanente, qui est celle du corps du personnage, et nous allons détecter si la hitbox
du coup de poing, par exemple, rentre en contact avec la hitbox du corps.
Si c’est deux hitbox rentrent en contact, alors il y a perte de vie chez le joueur qui est touché,
puis lancement d’une macro qui va générer le recul et le son.
J’ai donc fini ma partie, c’est-à-dire que je me suis occupé de la gestion des
personnages (déplacement), de la gestion des collisions (à l’aide de Box2D) et de trouver des
librairies (comme Box2D).
CONCLUSION
Pour conclure, je dirais que ce projet ma apporter dans l’esprit de groupe, que ce soit
de la répartition des tâches, a la mise en commun final.
J’aurais préférée être libre dans le choix du logiciel de programmation, car nous
avons ressenti très vite les contrainte de processing, malgré cela, ça m’a permis de
m’améliorer en programmation (en Java simplifier).
Par manque de temps je n’ai pas pu faire un algorithme présentant le
fonctionnement du projet final, il sera dans le diaporama lors de la présentation.
QUENTIN NIVELAIS
8

Documents pareils