Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Un Miniminijeu.  (Lu 13755 fois)

0 Membres et 1 Invité sur ce sujet

ulko10

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • E-mail
Re : Re : Un Miniminijeu.
« Réponse #15 le: Mai 16, 2013, 07:47:49 pm »
Pour le videomode(1900,1000) pourquoi c'est trop grand? Et sinon je confirme, j'ai effectivement beaucoup de mal a comprendre mon propre code par moments x)

Je sait pas exactement comment ça se passe pour le videomode, mais moi par exemple mon écran fait quelque chose comme 1360*768, donc ça me créer une erreur (Tu tente de placé un avion dans un maison). Sa pose un problème qui est réglé automatiquement (sa veut pas dire qu'il faut l'oublier).
Sous code::Block pour ce qui est de l'indentation quand tu place par exemple des accolades il te les places tout seul, normalement te suffit juste de rajouter des espaces entre pour ajouté ton code.

Et pour évité d'avoir a géré deux image pour tes "objectif"/"meteor" tu peut utilisé la fonction setFillColor, quand elle est touché tu change juste la couleur.

-----------------------------------------------

Et pour ce qui est de : (l.221)
if(tempsEcoule > seconds(5)) vitesse = 15;
if(tempsEcoule > seconds(10)) vitesse = 20;
if(tempsEcoule > seconds(15)) vitesse = 25;
if(tempsEcoule > seconds(20)) vitesse = 30;
if(tempsEcoule > seconds(25)) vitesse = 35;
Tu pourrai plutot faire quelque chose comme :
vitesse = temps.getElapsedTime().asSeconds()*0.5;

 ----------------------------------------------------

Petite astuce, a la place de :
if (mitraille) mitraille = false;
if (!mitraille) mitraille = true;
Faire :
mitraille = !mitraille;



Pis je vais m’arrêtez la après on voit que t'est paumé dans ton code et qu'un main() de 700 lignes est pas pratique (Par exemple tu a deux boucle d'event pour fermer ta fenêtre). Continue a faire des petit programme comme ça, et avec le temps tu pensera que la poo et les fonctions c'est trop cool et tu trouvera toi même ton style d'indentation.
« Modifié: Mai 16, 2013, 07:50:10 pm par ulko10 »

totorigolo

  • Newbie
  • *
  • Messages: 32
    • Voir le profil
Re : Un Miniminijeu.
« Réponse #16 le: Mai 16, 2013, 07:50:47 pm »
Pour indenter, rien de plus simple : Plugins → Source Code formater (AStyle). Par contre, veille à toujours sauvegarder ton code avant d'indenter, pour éviter les mauvaises surprises si ça bug (ça m'ait arrivé une fois il y a quelques années, donc tu risque pas grand chose, mais au cas où).

Et si tu n'arrive pas à comprendre ton code, c'est super grave. Imagine que tu fais une application et que plus tard tu as envie de la reprendre, ou alors tu fais un truc avec plein de fichiers et de fonctions et que tu as un bug, ben tu n'y arrivera tout simplement pas.
La solution tient en 3 consignes de base : commenter, indenter, nommer intelligemment.

N'ait pas peur de trop commenter, tu trouvera le juste milieu avec le temps. Pour l'indentation, il faut absolument que tu sois régulier et que tu ne te permette aucune fantaisie avec ton code de style (indentation, espaces,...). Pour les variables, il faut les nommer pour que tu comprenne rapidement, mais sans excès : tu peux garder "i" pour itérer, "x", "y" pour les coordonnées, ou encore des noms courts pour les algos par exemple... Mais n'appelle pas par exemple la fenêtre SFML que tu vas utiliser tout le temps "w".

TheNoob

  • Newbie
  • *
  • Messages: 31
    • Voir le profil
    • Anonym0us.fr
Re : Un Miniminijeu.
« Réponse #17 le: Mai 16, 2013, 08:34:18 pm »
Merci pour tous les conseils!
J'ai ajouté un son lorsqu'on tire un laser et de la musique en fond, j'ai enlevé les cout, les dll inutiles, j'ai indenté le code avec le truc automatique et j'ai mis les écritures en blanc tout en changeant la police. Je pense refaire le code pour le diviser en objets/fonctions afin de le rendre lisible.
Téléchargement de la nouvelle version:
http://anonym0us.fr/PROGTESTS/game1.rar
main.cpp:
http://anonym0us.fr/PROGTESTS/main.cpp


PS: ulko10 j'ai pas encore fais ce que t'as dit au dessus (pour le !mitraille et le truc du temps écoulé) mais dès que je réécrirai le code j'y penserai ;)
« Modifié: Mai 16, 2013, 08:38:18 pm par TheNoob »
Vivement l'invention d'un debuggeur automatique!

shingo

  • Jr. Member
  • **
  • Messages: 97
    • Voir le profil
Re : Un Miniminijeu.
« Réponse #18 le: Mai 16, 2013, 11:09:30 pm »
Mais pourquoi avoir tout mis dans un main ?

TheNoob

  • Newbie
  • *
  • Messages: 31
    • Voir le profil
    • Anonym0us.fr
Re : Un Miniminijeu.
« Réponse #19 le: Mai 16, 2013, 11:24:30 pm »
Parce que, comme je l'ai dit dans mon premier post, je suis débutant et c'est en testant différentes fonctions de sfml que j'ai créé ce petit jeu. Je me suis jamais dit au départ: "Tiens je vais faire un jeu qui fonctionnera de telle facon...", tout ce que je faisait c'était des tests pour mieux comprendre sfml, et comme ce tas de lignes de code commençait à faire un truc pas trop moche je l'ai transformé en jeu, hélas en laissant tout dans le main qui ne devait au départ ne me servir qu'a apprendre sfml, et non pas a creer quelque chose de concret. Après je me suis dis que c'était un petit jeu et que j'aurai pas besoin d'autres fichiers (j'avais surtout la flemme d'en faire sur le moment) puis ca a fini comme ça....
Je pense pas avoir expliqué très clairement mais je peux pas faire mieux désolé.
Sinon continuez à me proposer des améliorations ca me donne des objectifs à franchir.
Merci à tous.
Vivement l'invention d'un debuggeur automatique!

shingo

  • Jr. Member
  • **
  • Messages: 97
    • Voir le profil
Re : Un Miniminijeu.
« Réponse #20 le: Mai 17, 2013, 12:07:44 am »
Etre débutant ou pas, là n'est pas la question. Je suis également débutant, cela fais deux mois et demi environ que j'ai commencé le C++ et SFML mais il faut prendre dès le départ les bonnes habitudes. Tout dépend de ta capacité à apprendre mais je te conseille d'apprendre dans un premier temps le C++ et donc la programmation objet car tu vas t'embrouiller dès que tu vas te lancer sérieusement dedans.

Enfin, ce n'est qu'une suggestion. A toi de voir.

Sinon pour le bug en mode difficile, lorsque la partie a commencé, je ne pouvais tout simplement pas diriger le vaisseau avec la souris.

TheNoob

  • Newbie
  • *
  • Messages: 31
    • Voir le profil
    • Anonym0us.fr
Re : Un Miniminijeu.
« Réponse #21 le: Mai 17, 2013, 07:35:37 am »
Comme je le craignais ma réponse précédente n'est pas assez compréhensible. Bref, regarde les commandes sur mon premier post, le mode difficile on bouge pas a la souris ;)
D'ailleurs je trouve le mode difficile plus difficile (étonnant non?) Mais également mieux fait car tirer un laser ralentit le vaisseau, qui est deja assez lent de base, empechant le joueur de tirer 100% du temps.
« Modifié: Mai 17, 2013, 07:39:18 am par TheNoob »
Vivement l'invention d'un debuggeur automatique!

Excellium

  • Jr. Member
  • **
  • Messages: 70
    • Voir le profil
Re : Un Miniminijeu.
« Réponse #22 le: Mai 17, 2013, 12:19:21 pm »
Franchement c'est plutôt bien pour un débutant. Quand je l'étais moi, jamais j'aurai pu faire marcher un code aussi brouillon. On dirait un peu du C style (va falloir bien taffer sur le C++, sur le site du Zéro par ex.). Déjà, tu utilises beaucoup de concepts de la SFML, comme les vues par exemple, et ça c'est bien (ça prouve aussi que les tutos de Laurent sont bien fait). Un peu aussi de la STL (lecture et écriture dans un fichier, c'est ça qui a du lancer le faux positif). Je pense que le mieux que tu ais à faire, c'est clarifier ton code, en ajoutant le max de commentaires (entre les lignes). Tu verras que tout d'un coup, une certaine organisation va naître et que il y aura pour toi matière à simplifier (dans l'état actuel des choses tu peux diviser par trois la taille du code pour le même résultat). Surtout ne te lances pas la la programmation orienté objet pour l'instant, tu t'y perdrais (chaque chose en son temps). Çà ne t’empêche pas d'utiliser des fonctions et d'utiliser des .hpp pour les déclarations, et des .cpp pour les définitions. Déjà tu auras fait de grands progrès.
"Everything should be made as simple as possible, but not simpler."

TheNoob

  • Newbie
  • *
  • Messages: 31
    • Voir le profil
    • Anonym0us.fr
Re : Un Miniminijeu.
« Réponse #23 le: Mai 17, 2013, 03:58:49 pm »
Merci pour les conseils/encouragements.
Je compte refaire tout le code avec un peu de poo et de fonctions, ca me fera un petit exercice :)
Vivement l'invention d'un debuggeur automatique!

unitedelite

  • Jr. Member
  • **
  • Messages: 61
    • Voir le profil
Re : Un Miniminijeu.
« Réponse #24 le: Mai 22, 2013, 11:51:35 am »
Avant tout : ne prend pas mon post comme une critique sur ton jeu, je n'ai fait que regarder ton code et je j'y ai pas joué donc je ne me permet pas de dire qu'il est bon/nul =°


quelques trucs que je comprend pas dans ton code :

                mode = false;
                modechoice = true;
                std::ifstream fichierRead("datad.zft");
                using namespace std;


                fichierRead.seekg(0, std::ios::beg);
                fichierRead >> scoreMax;

                std::ostringstream oss6;
                oss6 << "Meilleur Score (Difficile): " <<scoreMax;
                std::string resultMax = oss6.str();
                fichierRead.close();

                using namespace sf;

                textMax.setString(resultMax);
                temps.restart();

Pourquoi placer des namespace a cette endroit ? les namespace ce placent au debut du fichier en dessous des #include et surtout que la tu t'en sert même pas (malgré ton "namespace std;" tu continue de faire  std::string  )


ensuite quand t'initialise plusieurs int/bool/ect. au lieux de faire

int x = 0;
int y = 0;
[...]
 

tu peut faire :

int x = 0, int y = 0, [...];
 


n’hésite pas aussi a passer par des fonctions , par exemple pour l'affichage ou les différent menu.

Quand tu fait une présentation mets des screens même si tu pense que ton jeu est moisi, ainsi ont est moins réticent a l'idée de télécharger en sachant de quoi il s'agit


Après avoir exploré ton code je te conseillerais une chose : continuer ton apprentissage du C/C++ avant d'attaquer la SFML, tu fait beaucoup d'erreur ( les namespace dit plus haut ou le manque d'utilisation des fonctions), ensuite tu verra toute les erreurs que tu a fait et tu pourra même réécrire ton programme en bien moins de lignes ^^

TheNoob

  • Newbie
  • *
  • Messages: 31
    • Voir le profil
    • Anonym0us.fr
Re : Un Miniminijeu.
« Réponse #25 le: Mai 22, 2013, 05:26:35 pm »
Je suis en train de corriger la flopée d'erreurs monumentales que j'ai fait et par la même occasion de réduire le code et le diviser en fonctions/objets.
Le code n'était que l'accumulation de plusieurs semaines de brouillon de diverses choses sans rapport avec le jeu, d’où le nombre de choses incohérentes et inutiles.
Sinon merci des conseils.
Vivement l'invention d'un debuggeur automatique!

Fifut

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
Re : Un Miniminijeu.
« Réponse #26 le: Mai 23, 2013, 08:13:17 pm »
Je viens de tester ton jeu et je l'ai trouvé bien fun!

C'est rapide, les parties s'enchainent très rapidement, je trouve sa sympa!

Ps : J'adore la musique  8)

TheNoob

  • Newbie
  • *
  • Messages: 31
    • Voir le profil
    • Anonym0us.fr
Re : Un Miniminijeu.
« Réponse #27 le: Mai 25, 2013, 11:20:22 am »
Merci beaucoup :D
Vivement l'invention d'un debuggeur automatique!

TheNoob

  • Newbie
  • *
  • Messages: 31
    • Voir le profil
    • Anonym0us.fr
Re : Un Miniminijeu.
« Réponse #28 le: Mai 26, 2013, 02:53:50 pm »
Et pour ce qui est de : (l.221)
if(tempsEcoule > seconds(5)) vitesse = 15;
if(tempsEcoule > seconds(10)) vitesse = 20;
if(tempsEcoule > seconds(15)) vitesse = 25;
if(tempsEcoule > seconds(20)) vitesse = 30;
if(tempsEcoule > seconds(25)) vitesse = 35;
Tu pourrai plutot faire quelque chose comme :
vitesse = temps.getElapsedTime().asSeconds()*0.5;
J'ai essayé, car c'est vrai que c'est en théorie plus fluide, mais je viens de remarquer que ça faisait pas mal lagger le vaisseau en mode facile, de plus en plus au fur et a mesure que le temps avançait....
Si quelqu’un sait d’où ça vient, dites le moi!
Vivement l'invention d'un debuggeur automatique!

ulko10

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • E-mail
Re : Un Miniminijeu.
« Réponse #29 le: Mai 26, 2013, 05:15:23 pm »
Je sait pas pourquoi ça fait ramer le vaisseau, mais essai de limité la vitesse avec par exemple :
if(vitesse > 35) vitesse = 35;