siwon / projetbomberman Goto Github PK
View Code? Open in Web Editor NEWProjet de programmation objet C++
Projet de programmation objet C++
J'ai modifié le titre du cahier des charges en rajoutant "Fonctionnel" pour le différencier du Cahier des charges technique qu'on aura aussi à faire...
Mais du coup ça merde pour l'alignement du titre. Donc je sais pas trop, soit on le met en sous-titre plutôt, sur 2 lignes peut-être.
Il faut définir les dates suivantes :
Donc donnez moi votre avis.
C'est SFML 1.6 OU 2.0 qu'il faut utiliser ?
Car dans la 2.0, pour gérer le clavier je n'aurais pas besoin du sf::RenderWindow idem pour le joystick...
Totals grouped lines by language (dominant language first):
cpp: 8970 (97.12%)
sh: 266 (2.88%)
Total Physical Source Lines of Code (SLOC) = 9,236
Schedule Estimate, Years (Months) = 0.71 (8.47)
Total Estimated Cost to Develop = $ 278,869
C'est bon les gars, on peut le vendre à 279$ notre Bomberman !!
Je viens de tester les contrôleurs pour déplacer les persos :
Clavier => No Problem
Joystick => No Problem
Wiimote => probleme ! C'est très lent vous avez du mettre un sleep trop élevée dans la boucle de jeu, moi j'avais mis 5ms dans le menu pour pas que ça affecte de trop la wiimote si vous pouvez faire pareil.
Sinon pour le multi touches ça marche très bien maintenant c'est formidable !
Et super la bombe qui explose le programme ^^
J'ai envoyé un mail au prof, afin d'être sur des dates comme vous l'avez vu.
Comme vous l'avez aussi vu, il est dispo lundi aprem, mercredi et vendredi.
Pour le moment je lui ai dit que ce serait vendredi, parce que ça m'arrange perso mais ce n'est pas définitif. Donc êtes-vous d'accord avec le jour et si oui quelle heure vous conviendrait le mieux ? Si vous n'êtes pas d'accord avec la date, dites le moi au plus tôt afin que je corrige le tir !
Répondez au plus vite SVP !
Le fichier menu/SelectNameMenu.hpp est introuvable. Juconil peux-tu le rajouter pour que je puisse exécuter le programme stp. J'ai besoin de faire des captures d'écran du menu pour continuer le manuel d'utilisation.
Merci ;)
Peut-on imaginer de faire exploser les bonus ? Et genre ça fait une autre explosion sur n cases ...
J'ai parlé au prof tout à l'heure, il m'a dit que la soutenance durerait environ 1/4 d'heure et qu'il fallait que je réserve une salle. C'est chose faite. La salle C008 est réservée pour le créneau 10h-11h et les tests se feront dans la salle C007.
Voilà.
Signé Puddi Puddi
Il faut supprimer tous les messages d'affichage que vous avez fait dans vos fichiers !!! On ne peut pas rendre le projet comme ça !
Bibiz,
Brice est en train de tester le programme, et à chaque erreur de segmentation, ton fichier est vidé,
Y a vraiment pas moyen que tu écrives au fur et à mesure dedans, plutot qu'à la fin ?
Car là du coup c'est chiant...
En relisant ta partie Simon j'ai relevé plusieurs ambiguités, ou trucs que tu as oublié de dire.
Je push, je reviens dans 1h et on règle ça ?
Faut aussi réfélchir aux probas des bonus, je ferai le tableau tt à l'heure.
Depuis les derniers commits, le programme consomme énormément de mémoire dès qu'il demande les évènements clavier/wii, etc..
Donc il y a une fuite de mémoire dans ta partie Bibiz, à partir du moment où j'appelle la fonction getKeyPressed().
Bon courage pour la retrouver, mais faut absolument la supprimer, le programme est inutilisable en l'état là...
Cadeau Bibiz ! Tout fonctionnait jusqu'à ce petit message au chargement :
MacBook-Pro-de-Siwon:projetBomberman Siwon$ ./PolyBomber
Recherche des périphériques wiimotes....... Allumez les !
[ERROR] Unable to search for bluetooth devices.
Segmentation fault: 11
Librairies installées, compilation sans erreur.
Bibiz, t'as voulu utiliser la SFML, mais comment on fait maintenant pour gérer le focus de la fenêtre, parce que là, même si elle est pas active, les touches sont tjrs actives !
Et aussi, est-ce possible pour le menu de dire qu'une touche est active si elle est relachée ? Avec un tableau de booléens pour chacune des 7 touches, ça doit être possible, et ça faciliterait la navigation dans le menu...
Dilemme entre Simon et moi concernant le bonus "Détonateur" qui permet de faire exploser toutes ses bombes en même temps en appuyant sur Action2.
En gros la question c'est : Faut-il rendre ce bonus permanent ou non ?
Point de vue de Simon :
Soit ce bonus est permanent, c'est à dire qu'une fois acquis on garde toujours le détonateur et qu'il faut toujours appuyer sur Action2 pour faire exploser nos bombes. Mettre une probabilité faible à ce bonus.
Soit le bonus correspond à une "bombe télécommandée" où le détonateur n'agit que sur une seule bombe, mais où ce bonus prend fin après une utilisation.
Point de vue de Maxime :
Ce bonus prend fin après avoir appuyé sur le détonateur et fait exploser toutes ses bombes. Cela permet de ne pas avantager trop un joueur par rapport aux autres.
Utiliser la touche Action2 également pour déposer une mine, et pour le bonus "Ligne de bombes", de la façon suivante :
Quel est votre avis là-dessus ?
Erreur à la compilation :
Board.cpp:666: error: ‘xInitial’ was not declared in this scope
Board.cpp:666: error: ‘yInitial’ was not declared in this scope
Pendant une partie, lorsque le joueur 1 appuie sur une touche, le joueur 2 ne peut pas appuyer sur une autre touche.
En gros, tu gères pas les multi touches pendant la partie...
j'ai regardé ton code, quand on assigne une touche deux fois, ça rentre pas dans ton if...
Je propose une modification concernant la durée de la mèche. Passer au moins de 2 à 3 secondes puisque si les bonus s'accumulent (genre explosion en 8 connexité + longue portée) le mec dès qu'il va poser une bombe il va se tuer ...
D'accord oui ou non ?
le SBoard contient un vecteur de boxes qui contient un vector2 et non pas vector2 ou encore vector2f
Un binome
Du coup si on ne rend pas les libs SFML au prof, ne faudrait-il pas changer un peu le manuel d'installation ?
Je suis en train de faire le diagramme de Gantt là, mais comment on se répartit les modules et la doc à faire ?
On a :
Intégration : Tous ?
Manuel d'installation : Bibiz
Manuel d'utilisation : Simon
Tests de de pré-livraison : Tous ?
Les fichiers de conf sont tous remplis avec les mêmes valeurs par défaut (contrôleurs, etc...) quelque soit le fichier de conf, alors que par exemple pour ceux des skins il devrait y avoir des valeurs différentes (voire un fichier vide).
Je suis partit d'une installation pratiquement vierge de Ubuntu et je suivis ton manuel d'installation mais je n'arrive pas à compiler le projet. Il me dit des messages du type :
...
WaitingMenu.cpp:(.text+0x2fa): undefined reference to `sf::Text::setColor(sf::Color const&)'
...
Etant donné que j'ai installé SFML 2.0 je ne comprend pas trop pourquoi il ne trouve pas ces fichiers ... une idée ?
On peut pas saisir le caractère . pour les adresses IP, c'est plutôt embêtant ^^
Je vois pas sous quelle forme stocker la configuration des joueurs sachant qu'il faut stocker le numéro du joueur, le type de contrôleur utilisé, l'action et la touche correspondante et tout ça sous forme de clé : valeur !
sudo apt-get clean
sudo apt-get remove --purge xulrunner-1.9.2
sudo apt-get install -f
make install
Binome, lors de la compilation, j'ai une erreur que maxime n'a pas :
NetworkManager.cpp: In function ‘sf::Packet& PolyBomber::operator<<(sf::Packet&, PolyBomber::SBoard&)’:
NetworkManager.cpp:688: error: ambiguous overload for ‘operator<<’ in ‘packet << bonus.std::vector<_Tp, _Alloc>::size [with _Tp = PolyBomber::SBonus, _Alloc = std::allocator<PolyBomber::SBonus>]()’
/usr/local/include/SFML/Network/Packet.hpp:196: note: candidates are: sf::Packet& sf::Packet::operator<<(bool)
/usr/local/include/SFML/Network/Packet.hpp:197: note: sf::Packet& sf::Packet::operator<<(sf::Int8)
/usr/local/include/SFML/Network/Packet.hpp:198: note: sf::Packet& sf::Packet::operator<<(sf::Uint8)
/usr/local/include/SFML/Network/Packet.hpp:199: note: sf::Packet& sf::Packet::operator<<(sf::Int16)
/usr/local/include/SFML/Network/Packet.hpp:200: note: sf::Packet& sf::Packet::operator<<(sf::Uint16)
/usr/local/include/SFML/Network/Packet.hpp:201: note: sf::Packet& sf::Packet::operator<<(sf::Int32)
/usr/local/include/SFML/Network/Packet.hpp:202: note: sf::Packet& sf::Packet::operator<<(sf::Uint32)
/usr/local/include/SFML/Network/Packet.hpp:203: note: sf::Packet& sf::Packet::operator<<(float)
/usr/local/include/SFML/Network/Packet.hpp:204: note: sf::Packet& sf::Packet::operator<<(double)
/usr/local/include/SFML/Network/Packet.hpp:209: note: sf::Packet& sf::Packet::operator<<(const sf::String&)
NetworkManager.cpp:696: error: ambiguous overload for ‘operator<<’ in ‘packet << explosive.std::vector<_Tp, _Alloc>::size [with _Tp = PolyBomber::SExplosive, _Alloc = std::allocator<PolyBomber::SExplosive>]()’
/usr/local/include/SFML/Network/Packet.hpp:196: note: candidates are: sf::Packet& sf::Packet::operator<<(bool)
/usr/local/include/SFML/Network/Packet.hpp:197: note: sf::Packet& sf::Packet::operator<<(sf::Int8)
/usr/local/include/SFML/Network/Packet.hpp:198: note: sf::Packet& sf::Packet::operator<<(sf::Uint8)
/usr/local/include/SFML/Network/Packet.hpp:199: note: sf::Packet& sf::Packet::operator<<(sf::Int16)
/usr/local/include/SFML/Network/Packet.hpp:200: note: sf::Packet& sf::Packet::operator<<(sf::Uint16)
/usr/local/include/SFML/Network/Packet.hpp:201: note: sf::Packet& sf::Packet::operator<<(sf::Int32)
/usr/local/include/SFML/Network/Packet.hpp:202: note: sf::Packet& sf::Packet::operator<<(sf::Uint32)
/usr/local/include/SFML/Network/Packet.hpp:203: note: sf::Packet& sf::Packet::operator<<(float)
/usr/local/include/SFML/Network/Packet.hpp:204: note: sf::Packet& sf::Packet::operator<<(double)
/usr/local/include/SFML/Network/Packet.hpp:209: note: sf::Packet& sf::Packet::operator<<(const sf::String&)
NetworkManager.cpp:704: error: ambiguous overload for ‘operator<<’ in ‘packet << player.std::vector<_Tp, _Alloc>::size [with _Tp = PolyBomber::SPlayer, _Alloc = std::allocator<PolyBomber::SPlayer>]()’
/usr/local/include/SFML/Network/Packet.hpp:196: note: candidates are: sf::Packet& sf::Packet::operator<<(bool)
/usr/local/include/SFML/Network/Packet.hpp:197: note: sf::Packet& sf::Packet::operator<<(sf::Int8)
/usr/local/include/SFML/Network/Packet.hpp:198: note: sf::Packet& sf::Packet::operator<<(sf::Uint8)
/usr/local/include/SFML/Network/Packet.hpp:199: note: sf::Packet& sf::Packet::operator<<(sf::Int16)
/usr/local/include/SFML/Network/Packet.hpp:200: note: sf::Packet& sf::Packet::operator<<(sf::Uint16)
/usr/local/include/SFML/Network/Packet.hpp:201: note: sf::Packet& sf::Packet::operator<<(sf::Int32)
/usr/local/include/SFML/Network/Packet.hpp:202: note: sf::Packet& sf::Packet::operator<<(sf::Uint32)
/usr/local/include/SFML/Network/Packet.hpp:203: note: sf::Packet& sf::Packet::operator<<(float)
/usr/local/include/SFML/Network/Packet.hpp:204: note: sf::Packet& sf::Packet::operator<<(double)
/usr/local/include/SFML/Network/Packet.hpp:209: note: sf::Packet& sf::Packet::operator<<(const sf::String&)
NetworkManager.cpp:716: error: ambiguous overload for ‘operator<<’ in ‘packet << flame.std::vector<_Tp, _Alloc>::size [with _Tp = PolyBomber::SFlame, _Alloc = std::allocator<PolyBomber::SFlame>]()’
/usr/local/include/SFML/Network/Packet.hpp:196: note: candidates are: sf::Packet& sf::Packet::operator<<(bool)
/usr/local/include/SFML/Network/Packet.hpp:197: note: sf::Packet& sf::Packet::operator<<(sf::Int8)
/usr/local/include/SFML/Network/Packet.hpp:198: note: sf::Packet& sf::Packet::operator<<(sf::Uint8)
/usr/local/include/SFML/Network/Packet.hpp:199: note: sf::Packet& sf::Packet::operator<<(sf::Int16)
/usr/local/include/SFML/Network/Packet.hpp:200: note: sf::Packet& sf::Packet::operator<<(sf::Uint16)
/usr/local/include/SFML/Network/Packet.hpp:201: note: sf::Packet& sf::Packet::operator<<(sf::Int32)
/usr/local/include/SFML/Network/Packet.hpp:202: note: sf::Packet& sf::Packet::operator<<(sf::Uint32)
/usr/local/include/SFML/Network/Packet.hpp:203: note: sf::Packet& sf::Packet::operator<<(float)
/usr/local/include/SFML/Network/Packet.hpp:204: note: sf::Packet& sf::Packet::operator<<(double)
/usr/local/include/SFML/Network/Packet.hpp:209: note: sf::Packet& sf::Packet::operator<<(const sf::String&)
make[1]: *** [NetworkManager.o] Erreur 1
make[1]: quittant le répertoire « /home/siwon/nouveau dossier/projetBomberman/src/network »
make: *** [network] Erreur 2
Quand je met un cast (int), ça résout les problèmes, mais du coup, si on le rajoute, est-ce que ça va pas poser des problèmes plus tard ?
En fait j'arrive pas à interfacer ta méthode getCharPressed() avec mon menu.
Je sais pas comment faire pour l'arrêter déjà.
Et quand je l'appelle je l'appelle en boucle là, mais du coup ça fait surchauffer le programme donc bon...
Depuis ton dernier commit (que j'ai pullé par erreur), mes compilations ne marchent plus...
Il me dit :
include/controller/wiic/wiic.h:50: fatal error: bluetooth/bluetooth.h: Aucun fichier ou dossier de ce type
Il faudrait faire rapidement les test de recette. Le truc c'est que je ne vois pas comment on pourrait présenter ça, ni même le contenu d'ailleurs...
Tout est dans le titre ;)
Quand je mets dans un fichier de conf:
skin:Skin par défaut
le résultat est getStringValue("skin") = "Skin" et non "Skin par défaut".
Binome, on est d'accord, cette fonction renvoie 0 si le jeu n'est pas en pause et idJoueur+1 si le jeu est en pause non ?
Je vais modifier la modélisation du moteur de jeu parce que ce sera beaucoup plus simple, et je ne vois pas ce qu'elle a de moins que celle proposée actuellement.
projetBomberman, c'est pas top...
J'ai mis les icones sur dropbox
Un changement est effectué : lorsque le bomberman pose une bombe, il l'a pose sur sa case. Il devra ensuite se déplacer. Il faut donc changer le rapport en conséquence.
Quand on recherche la clé/valeur se trouvant sur la dernière ligne du fichier de configuration (sans nouvelle ligne), celle-ci n'est pas lue et est considérée comme inexistante.
A la compilation :
include/controller/Wiicpp.hpp:37:23: error: wiic/wiic.h: Aucun fichier ou dossier de ce type
Enlève moi tt de suite ce truc commercial qui n'a rien à voir avec un projet scolaire...
La SFML 2.0 possède des parties uniquement en 32 bits ?
Il manquerait pas par hasard un mouvement dans la méthode movePlayer(Player player) de GameEngineManager sur la modélisation ???? (page 21 du rapport)
J'ai téléchargé hier soir le fichier que vous avez mis sur madoc, et voilà le readme :
# Projet Bomberman
Conception en langage objet d'un jeu de bomberman jouable en réseau et avec une wiimote.
Pour commencer, lire le manuel d'installation (doc/manuel_installation.pdf).
## Contributeurs :
* Bisiaux Alexandre
* Guihal Maxime
* Guillermic Brice
* Puddi Puddi
## Structure des dossiers :
* /bin : Fichiers .o compilés
* /doc : Cahiers des charge et Manuels d'installation et d'utilisation
* /doc/doxygen : Documentation
* /include : Headers du programme
* /lib : Bibliothèques externes (SFML et CWii)
* /resources : Ressources du programme (images, sons, polices, fichier de configuration)
* /src : Code source de chaque module
Il y a pas un truc qui vous choc ?
Bon, j'en peux plus !
Quand je compile mes fichiers 1 par 1, que des warnings pour variables non utilisés, par contre, dès que je fais un petit main, j'ai cette putain d'erreur de mes couilles :
Undefined symbols for architecture x86_64:
"PolyBomber::GameEngineManager::GameEngineManager()", referenced from:
_main in ccnHwd20.o
"PolyBomber::GameEngineManager::~GameEngineManager()", referenced from:
_main in ccnHwd20.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
Je ne sais pas comment m'en débarrasser et ça m'empêche d'avancer ... (sachant que je ne suis même pas au début de ce que je devrais faire ... )
Quand je fais setPlayerController(P, GAMEPAD);
où P est [1,2,3,4]
et quand il n'y a pas de joysticks de branchés, il me met une erreur de segmentation.
Le problème ne se pose pas quand on met WII et qu'aucune Wii n'est branchée.
J'ai rajouté une méthode dans IConfigFile pour lister toutes les clés d'un fichier, car j'en ai besoin pour les skins finalement.
Je te laisse l'implémenter.
Il faudrait aussi déplacer le fichier de configuration principal de la racine vers /resources dans le ConfigFileManager.
T'as oublié de fournir une image pour l'origine des flammes ^^
Sinon j'ai pas compris la différence entre :
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.