Projet ICN9 2016/2017

De Informatique et Création Numérique
Aller à : Navigation, rechercher

Sommaire

Participants

  • Titouan DEMANGE
  • Thibault ELLONG
  • Valentin SENE

Cahier des charges

(thumbnail)
Logo SFML

Le jeu est un jeu de plateforme 2D multijoueur. Le joueur doit arrviver en premier à la fin du niveau tout en haut. Des bonus peuvent apparaître sur les terrains pour désavantager son adversaire ou s'avantager tels que des bonus de vitesse, de saut, d'invincibilité. Le programme est à écrire en langage C++ avec la bibliothèque SFML (Simple and Fast Multimedia Library).

Réalisations

Quelques étapes dans la réalisation du jeu.

  • Prise en main de la bibliothèque SFML et téléchargement de fichiers audio et images.
  • Réalisation d'un programme permettant de faire bouger un personnage avec les flèches du clavier, de modifier sa vitesse de déplacement et même de le faire marcher en arrière.
  • Ecriture d'un programme demandant votre nombre d'enfants puis vous répondant avec 2 autres phrases qui varient en fonction de la réponse que vous avez donné tel que : "Bravo, vous avez 2 enfants !" ou "Et c'est pour quand le troisième ?".
  • Etude des cours sur "openclassrooms" concernant le C++.
  • Gestion des collisions entre objets et personnages et aussi de la gravité.
  • Ecriture d'une fonction utilisant le générateur de nombres aléatoires.
  • Ecriture du scénario.

A faire

Ce qu'il nous reste à faire pour finir le jeu.

  • Faire la fonction qui gère les points les bonus la vie la génération des plateformes etc... : le moteur de jeu
  • Améliorer la fonction de detection des collisions
  • Le scénario pour donner de la vie et une histoire au jeu
  • Trouver le nom (si vous avez des suggestions on est ouverts)
  • Le multijoueur (à 4 si possible)
  • Le menu
  • D̶e̶s̶ ̶c̶o̶n̶t̶r̶a̶t̶s̶ ̶p̶u̶b̶l̶i̶c̶i̶t̶a̶i̶r̶e̶s̶ ̶p̶o̶u̶r̶ ̶l̶'̶a̶r̶g̶e̶n̶t̶
  • Tester le jeu pour l'équilibrer (surtout les bonus), régler les bugs et ajouter les choses manquantes
  • L'améliorer
  • Recommencer les 2 derniers points

C++

(thumbnail)
Logo Open Classrooms

voir le lien vers openclassrooms qui explique très bien ce qu'est le c++ et est l'endroit ou nous puisons nos connaissances dans ce langage.




Le moteur de jeu

Il devra gérer:
les statistiques

  • les point de vie
  • la défense
  • la vitesse
  • la puissance

la partie

  • les bonus
  • la hauteur du joueur
  • la hauteur de la porte du joueur

Multijoueur

Pour le multijoueur, nous avons choisi d'utiliser la SFML partie network mais ce n'est pas la priorité, pour l'instant et jusqu'à une version future les deux joueurs seront sur le même clavier, l'objectif étant le lan

(thumbnail)
LAN

Le LAN (Local Area Network) désigne un réseau local qui relie des machines entre elles, il est ainsi possible de faire des parties avec vos amis si vous êtes sur le même réseau en wi-fi ou en Ethernet.










Graphismes

Le but de la SFML est de gérer la partie graphique avec du code (c'est la bibliothèque graphique) nous avons donc cherché sur des sites spécialisés des packs d'images pour nos plateformes, ennemis, etc... Le dossier est sur Google Drive depuis la version 2.0 il est possible de gérer bien d'autres choses comme le réseau...

(thumbnail)
Feuille de Sprite

Voici, à droite, la fiche de sprite de J1 qui est utilisée pour le développement, on y voit toute les position que le personnage peut à voir en marchant. Avec la sfml, on prend l'image qu'on stock en tant que texture, on l’applique à un sprite, puis on la découpe selon la partie désirée.

ce qui donne...

if(!textureJ1.loadFromFile(("spriteJ1.png"), sf::IntRect(dec1, dec2, dec3, dec4)))
       {
           std::cout << "erreur : chargement de spriteJ1" << std::endl;
       }
       J1.setTexture(textureJ1);

puis...

if(sf::Keyboard::isKeyPressed(sf::Keyboard::Z))
       {
           J1.move(0, -vitesse);
           dec2 = 0;
       }
       else
       {
           J1.move(0, vitesse);
           dec2 = 144;
       }
       if(sf::Keyboard::isKeyPressed(sf::Keyboard::Q))
       {
           J1.move(-vitesse,0);
           dec2 = 48;
       }
       if(sf::Keyboard::isKeyPressed(sf::Keyboard::D))
       {
           J1.move(vitesse,0);
           dec2 = 96;
       }

Game design

Dans le jeu, vous serez amenés à combattre un adversaire pour arriver en premier sur la dernière plateforme du niveau. La caméra avance toute seul vers le haut et vous mourrez si vous en sortez où si votre ennemi utilise certains bonus.

Contrôles

  • Z: avancer
  • Q: aller à gauche
  • S: reculer
  • D: aller à droite
  • [LSHIFT]: utiliser l'objet
  • [ ]: utiliser un le bonus

-

  • ↑: avancer J2
  • ←: aller à gauche J2
  • ↓: aller en bas J2
  • →: aller à droite J2
  • [RSHIFT]: utiliser l'objet J2
  • ↵: utiliser un le bonus J2

Scénario

A venir...

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Outils