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

Auteur Sujet: Font et Text freeze mon programme...  (Lu 990 fois)

0 Membres et 1 Invité sur ce sujet

Slash94

  • Jr. Member
  • **
  • Messages: 89
    • Voir le profil
Font et Text freeze mon programme...
« le: Décembre 23, 2016, 09:50:11 pm »
Bonsoir à tous,

J'ai réussi à coder un pong perso comme un grand qui est fonctionnel !
Néanmoins, lorsque je charge un Font avec loadFromFile ou bien quand j'utilise texte.setString mon programme freeze.. C'est à dire que lorsque j'appui sur espace, le jeu est censé se lancer car la variable "gameLaunch" booléenne ( accessible avec getGameState() ) passe à " true ", cela fonctionne parfaitement MAIS dés que je veux afficher du texte ou charger un font ( pour afficher les scores du coup ), quand j'appuie sur Espace au début du jeu, getGameState() renvoi 0 et si je reste appuyé sur espace je reçois plein de 00000 ( testé avec un cout ), pourquoi ne veut-elle pas passer à 1 / true ?
J'ai remarqué que ce problème venait de Font ou bien de Text...

Voici mon main :

#include <iostream>
#include <sstream>

#include "player.h"
#include "computer.h"
#include "keygestion.h"
#include "ball.h"

#include <SFML/Graphics.hpp>

using namespace std;
using namespace sf;

template <class T>
string nbrConv(T Number)
{
    ostringstream ss;
    ss << Number;
    return ss.str();
}


int main()
{

RenderWindow app(VideoMode(800,600,32),"Pong V1.1", Style::Titlebar);

Font arial;
if (!arial.loadFromFile("arial.ttf"))
{
    cout << "Impossible de charger le font arial.ttf" << endl;
} else {

}

app.setFramerateLimit(60);

//creation de mon objet de gestion du clavier
Keygestion KG;

//creation de mes objets joueur, ordinateur et balle
Player plr(10,100,Color(255,255,255));
Computer cpt(10,100,Color(255,255,255));
Ball ball(7,Color(255,255,255));

//configuration des positions de départ
plr.setPos(10,app.getSize().y / 2 - 80);
cpt.setPos(780,app.getSize().y / 2 - 80);
ball.setPos(app.getSize().x/2, app.getSize().y / 2 - 80);

    while(app.isOpen())
    {
        if (Keyboard::isKeyPressed(Keyboard::Escape))
            app.close();
        Event event;
        while (app.pollEvent(event))
        {
            if (event.type == event.Closed)
                app.close();
        }

        app.clear();

        if (!plr.getGameState() && Keyboard::isKeyPressed(Keyboard::Space))
            plr.setGameState(true);

        if (plr.getGameState()){
        //gestion du joueur
        KG.ecouteClavier(plr);
        plr.boundGestion();

        //gestion de l'ordinateur
        ball.influenceComputer(cpt);

        //gestion de la balle
        ball.goBall();
        ball.verticalBoundGestion();
        ball.paddleBoundGestion(plr,cpt);
        ball.checkWinner(plr,cpt);

        cout << plr.getGameState() << endl;

        if (!plr.getGameState())
        {
            plr.setPos(10,app.getSize().y / 2 - 80);
            cpt.setPos(780,app.getSize().y / 2 - 80);
            ball.setPos(app.getSize().x/2, app.getSize().y / 2 - 80);
        }

        }


        //affichages des éléments
        plr.drawTo(app);
        ball.drawTo(app);
        cpt.drawTo(app);

        app.display();

    }

}

 

Merci à vous :-)