Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Sujets - Develog

Pages: [1]
1
Général / [Résolu] Boutons à la même position
« le: Juillet 26, 2017, 07:16:36 pm »
Bonjour,

Je me retrouve face à un problème, je dispose de deux boutons, qui sont les deux à la même position x/y. Le fonction attendu est le suivant : Si j'appuie sur le premier bouton, le second devient cliquable, puis le second effectue une action quelconque.
À savoir que j'ai une classe bouton, avec une fonction toute simple pour vérifier si le bouton (rectangleShape) est cliqué.

bool Button::isClicked(Event *event, Vector2f *worldPos)
{
    if((event->type == Event::MouseButtonPressed) && (event->mouseButton.button == Mouse::Left) && (button_GB.contains(worldPos->x, worldPos->y)))
    {
        return true;
    }
    else
    {
        return false;
    }
}

Et donc, dans le fonctionnement, j'ai une variable qui passe à true si le premier bouton est cliqué. Et ensuite j'ai une condition avec la fonction juste au dessus et avec la variable précédente :

if(button1[i].isClicked(event, worldPos))
{
      variable2 = true;
}
if(button2[i].isClicked(event, worldPos) && variable2)

Et je fais ça pour les deux boutons, mais si j'appuie sur le premier, je passe directement à la dernière action, et je ne vois pas le second bouton (le clic se fait sur les deux directements). J'espère avoir été suffisament clair sur l'explication.

Pour passer outre ce problème, j'ai pensé à laisser un petit délai. Mais rien n'y fait, cela change rien.

Auriez vous une idée de comment contrer ce soucis ? Je demande pas forcement du code, juste une piste.

Merci d'avance

2
Général / [Résolu]bad_alloc avec une classe héritant de Drawable
« le: Septembre 11, 2015, 03:43:03 pm »
Bonjour,

Je me trouve confronté à un problème assez important. J'ai une classe "Button" que j'utilise pour créer des boutons à partir de RectangleShape que j'utilise depuis SFML 2.0, je suis pas récemment sur SFML 2.3 et depuis ma classe (dont je n'ai rien changé) me sort des bad_alloc de temps à autres.
J'ai essayé de voir d'où venait ces bad_alloc avec le debbuger mais je n'ai rien trouvé.
Des fois tout fonctionne correctement et d'autres fois impossible de lancer le programme sans avoir ce bad_alloc.

Et je suis persuadé que l'erreur vient de cette classe car si je ne l'appelle pas dans mon main tout se passe bien.


Voici ma classe Button :

#include "Button.h"

Button::Button()
{
    if (!font.loadFromFile("Resources/Hyperspace.ttf"))
    {
        std::cout << "erreur font" << std::endl;
    }
    button_text.setFont(font);
}

Button::~Button()
{

}

Button::Button(int width, int height, int posX, int posY, int r, int g, int b, bool shadow, std::string text)
{
    if (!font.loadFromFile("Resources/Hyperspace.ttf"))
    {
        std::cout << "erreur font" << std::endl;
    }
    button_text.setFont(font);

    button.setSize(sf::Vector2f(width, height));
    button.setPosition(posX, posY);
    button.setFillColor(sf::Color(r,g,b));

    button_GB = button.getGlobalBounds();

    button_text.setCharacterSize(100);
    button_text.setString(text);
    button_text.setColor(sf::Color::White);

    text_GB = button_text.getGlobalBounds();
    button_text.setPosition(posX + ((width - text_GB.width)/ 2) , posY + ((height - text_GB.height)/ 2 - (text_GB.height / 2)));

    if (shadow == true)
    {
        button_shadow.setSize(sf::Vector2f(width, height));
        button_shadow.setPosition(posX + 2, posY + 2);
        button_shadow.setFillColor(sf::Color(r,g,b-80));
    }
}



void Button::setSize(int width, int height)
{
    m_width = width;
    m_height = height;
    button.setSize(sf::Vector2f(width, height));
    button_GB = button.getGlobalBounds();
}

void Button::setPosition(int posX, int posY)
{
    m_posX = posX;
    m_posY = posY;
    button.setPosition(posX, posY);
    button_GB = button.getGlobalBounds();
}

void Button::setColor(int red, int green, int blue)
{
    m_red = red;
    m_green = green;
    m_blue = blue;
    button.setFillColor(sf::Color(red,green,blue));
}

void Button::setText(string text)
{
    m_text = text;
    button_text.setCharacterSize(20);
    button_text.setString(text);
    button_text.setColor(sf::Color::White);

    text_GB = button_text.getGlobalBounds();
    button_text.setPosition(m_posX + ((m_width - text_GB.width)/ 2) , m_posY + ((m_height - text_GB.height)/ 2 - (text_GB.height / 2)));
}

void Button::setShadow(bool activate)
{
    if (activate == true)
    {
        button_shadow.setSize(sf::Vector2f(m_width, m_height));
        button_shadow.setPosition(m_posX + 2, m_posY + 2);
        button_shadow.setFillColor(sf::Color(m_red, m_green, m_blue-80));
    }
}

void Button::setSprite(string filepath)
{
    if (!button_spr_texture.loadFromFile(filepath))
    {
        std::cout << "erreur texture button" << std::endl;
    }
    button.setTexture(&button_spr_texture);
}

bool Button::isClicked(sf::Event *event, sf::Vector2f *worldPos)
{
    if((event->type == sf::Event::MouseButtonPressed) && (event->mouseButton.button == sf::Mouse::Left) && (button_GB.contains(worldPos->x, worldPos->y)))
    {
        return true;
    }
    else
    {
        return false;
    }
}

int Button::getWidth()
{
    return m_width;
}

int Button::getHeight()
{
    return m_height;
}
 

Le header :

#ifndef BUTTON_H
#define BUTTON_H

#include <SFML/Graphics.hpp>
#include <iostream>

using namespace std;

class Button : public sf::Drawable
{
    public:
        Button(int width, int height, int posX, int posY, int r, int g, int b, bool shadow, std::string text);
        Button();
        ~Button();

        void setSize(int width, int height);
        void setPosition(int posX, int posY);
        void setColor(int red, int green, int blue);
        void setText(string text);
        void setShadow(bool activate);
        void setSprite(string filepath);

        int getWidth();
        int getHeight();

        bool isClicked(sf::Event *event, sf::Vector2f *worldPos);

    private:

        virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const
        {
            target.draw(button_shadow, states);
            target.draw(button, states);
            target.draw(button_text, states);
        }

        int m_width = 0;
        int m_height = 0;
        int m_posX = 0;
        int m_posY = 0;
        int m_red = 0;
        int m_green = 0;
        int m_blue = 0;
        string m_text = "";
        bool m_activate = false;

        sf::RectangleShape button;
        sf::RectangleShape button_shadow;

        sf::Text button_text;

        sf::FloatRect text_GB;
        sf::FloatRect button_GB;

        sf::Font font;

        sf::Texture button_spr_texture;
};

#endif // BUTTON_H
 

Et pour appeler cette classe je fais tout simplement Button Button1; Et ensuite j'appelle les fonctions si besoin.
Et là je ne vois pas d'où peut venir le problème.

Merci d'avance.

3
Général / [Résolu]Problème avec les events
« le: Mars 29, 2015, 12:47:34 am »
Bonjour,

Je me permet de mettre un post sur le forum car j'ai un soucis avec les events.
Et le problème est donc qu'une fois que j'appuie sur le bouton de la souris il exécute les deux conditions, alors que la touche est relâchée qu'une fois alors que faire pour pallier à ce soucis ? Et éviter que les deux conditions soient appelées, car c'est pour des boutons et si j'appuie je veux pas qu'il y ai un double clic (ou rebond (je crois que c'est ça le terme)).
Merci d'avance 


Voici le code :

if((event->type == sf::Event::MouseButtonReleased) && (event->mouseButton.button == sf::Mouse::Left))
    {
        if (box_GB.contains(worldPos->x, worldPos->y) && activate == false)
        {
            activate = true;
            cout << "true" << endl;
        }
    }


    if((event->type == sf::Event::MouseButtonReleased) && (event->mouseButton.button == sf::Mouse::Left))
    {
        if (box_GB.contains(worldPos->x, worldPos->y) && activate == true)
        {
            activate = false;
            cout << "false" << endl;
        }
    }


4
Général / Tableau dynamique/statique
« le: Décembre 26, 2014, 12:15:33 am »
Bonjour,

Je suis en train de faire une petite carte 2D (But final avoir une carte de 1000 * 1000 ... soit 1 000 000 de tuiles avec différents types de tuiles), je rencontre un soucis de taille, enfin c'est plutôt une question ...

Vaut il mieux utiliser un tableau dynamique ou un tableau statique sachant que la taille de ma carte est de base définie ? J'opterai pour un tableau statique.
J'ai actuellement fait le test avec un tableau dynamique et ne serai ce que pour afficher 100 tuiles, il faut 10 secondes environ alors que sans tableau j'en ai pour même pas une seconde ...

Voici les 2 codes :

Avec MAPSIZE = 10

Avec un tableau dynamique : (environ 10 secondes)
for(int x = 0; x < MAPSIZE; x++)
    {
        for(int y = 0; y < MAPSIZE; y++)
        {
            sizeVector = Tilemap.size();
            Tilemap.push_back(tile);
            Tilemap[sizeVector].addTile(x, y);
        }
    }

Sans le tableau : (Même pas une seconde)
for(int x = 0; x < MAPSIZE; x++)
    {
        for(int y = 0; y < MAPSIZE; y++)
        {
            tile.addTile(x, y);
        }
    }

Fonction addTile() :
void Tile::addTile(int posX, int posY)
{
    vertex.position = sf::Vector2f(posX * TILESIZE, posY * TILESIZE);
    vertex.texCoords = sf::Vector2f(128,0);
    tiles.append(vertex);

    vertex.position = sf::Vector2f(posX * TILESIZE + TILESIZE, posY * TILESIZE);
    vertex.texCoords = sf::Vector2f(256,0);
    tiles.append(vertex);

    vertex.position = sf::Vector2f(posX * TILESIZE + TILESIZE, posY * TILESIZE + TILESIZE);
    vertex.texCoords = sf::Vector2f(256,128);
    tiles.append(vertex);

    vertex.position = sf::Vector2f(posX * TILESIZE, posY * TILESIZE + TILESIZE);
    vertex.texCoords = sf::Vector2f(128,128);
    tiles.append(vertex);
}

Donc voilà, je pense que sans tableau on fait appel à draw une seule fois mais avec le tableau dynamique j'ai l'impression qu'on fait appel à draw à chaque tour de boucle. Est ce normal ? Et si non comment régler ce soucis ? :)

Merci d'avance

5
Discussions générales / SFML 2.2 et Windows Phone
« le: Décembre 19, 2014, 10:52:41 pm »
Bonjour,

Étant un grand utilisateur Windows Phone et aussi un fervent défenseur de ce système d'exploitation, je me demande si un jour nous aurions le droit à une version Windows Phone de SFML pour avoir ainsi nos jeux aussi sur Windows Phone (qui est une plateforme qui se développe assez vite en ce moment ;) )

Merci d'avance 

6
Général / SceneManager
« le: Novembre 11, 2014, 01:19:57 pm »
Bonjour,

J'ai essayé de m'approprier le ScèneManager proposé sur le github de Laurent. Je voulais essayer de comprendre comment cela marchait. Après quelques tests et après compréhension je m'aperçois que l'application utilise 30 % du processeur d'après le gestionnaire de tâches ce qui me parait énorme quand on voit qu'une application avec un seul screen ne dépasse pas les 1 % ... Donc je comprends que ça utilise plus le processeur mais à ce point je suis étonné tout de même :/

Est ce donc normal ?
Merci d'avance

7
Général / [Résolu]Dessiner un objet dans une classe
« le: Octobre 18, 2014, 03:57:47 pm »
Bonjour,

Je suis confronté à un petit problème, j'aimerai dessiner un objet dans une classe autre que ma classe où se trouve ma boucle principale avec le Sf::RenderWindow.

Donc je pensais faire un truc du genre mais bon ça marche pas du coup j'ai comme ceci (deuxième morceau de code)

Button button1;

virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const
        {
            target.draw(button1, states);
        }

void GUI::Update(sf::RenderTarget *target)
{
    target->draw(bbutton1);
}

Mais rien non plus avec ça donc je me demande comment on fait exactement, jusqu'à maintenant j'ai jamais eu besoin de faire ça ...

Merci d'avance

8
Graphique / VertexArray & Append
« le: Août 06, 2014, 03:33:18 pm »
Bonjour,

J'essaie d'utiliser la fonction append de VertexArray pour optimiser mon programme.
Mais j'ai du mal à comprendre comment cela marche ...

Quand on fait : vertexarray.append(vertex) 
On ajoute une vertex à notre vertexarray n'est ce pas ?

Actuellement j'ai ce code :

void Tile::appendTile(int posX, int posY)
{
    if (!textureTileset.loadFromFile("Resources/Tileset.png"))
        std::cout << "Error Loading" << std::endl;

    vertex.position = sf::Vector2f(posX * TILESIZE, posY * TILESIZE);
    vertex.texCoords = sf::Vector2f(128,0);
    tiles.append(vertex);

    vertex.position = sf::Vector2f(posX * TILESIZE + TILESIZE, posY * TILESIZE);
    vertex.texCoords = sf::Vector2f(192,0);
    tiles.append(vertex);

    vertex.position = sf::Vector2f(posX * TILESIZE + TILESIZE, posY * TILESIZE + TILESIZE);
    vertex.texCoords = sf::Vector2f(192,64);
    tiles.append(vertex);

    vertex.position = sf::Vector2f(posX * TILESIZE, posY * TILESIZE + TILESIZE);
    vertex.texCoords = sf::Vector2f(128,64);
    tiles.append(vertex);
}
 


Où tiles est un vertexarray et vertex une vertex

Mais à l'écran je n'ai que des points quand je fais appel à cette fonction ... Faut il faire quelque chose par la suite pour lié les vertex entre elles ?


Merci d'avance

9
Graphique / Texture vertex array
« le: Juin 23, 2014, 12:45:46 am »
Bonsoir/bonjour ;)

Je viens ici pour vous demander de l'aide et des conseils.
Je travaille sur un tableau de vertex array, je fais appel à un tileset pour faire un seul appel à la fonction draw mais je cherche à savoir comme est ce possible de définir une texture à un quad en particulier.

J'avais essayé en faisant ceci :

tile[4].texCoords = sf::Vector2f(40, 0);
            tile[5].texCoords = sf::Vector2f(80, 20);
            tile[6].texCoords = sf::Vector2f(40, 40);
            tile[7].texCoords = sf::Vector2f(0, 20);

Comme vous pouvez le voir j'ai donc changé "l'ID" du point en espérant que mon deuxième quad est une texture différente seulement c'est tout une ligne qui prend cette texture, c'est à dire qu'à partir du second quad toute la ligne prend la même texture et sur la ligne suivante tout redevient normal ...
Et au passage sur une "carte" de 10 sur 10 j'ai souvent un retour de std::bad_alloc ...
Je cherche donc un moyen de remédier à ça et donc je fais appel à votre grand savoir ;)

Screen à l'appui :




Merci d'avance

10
Général / Source lumineuse
« le: Mai 30, 2014, 01:49:46 pm »
Bonjour,

Je me demandais comment on pouvait faire des sources lumineuses. Certaines API ont déjà ça d'intégrer mais j'aimerai savoir comment ça marche et comment réaliser ça en SFML.
J'avais déjà fait un pseudo système d'éclairage en utilisant des CircleShape plus foncés mais ça donnait un très mauvais rendu ...

Merci d'avance

11
Graphique / Charger une texture carré pour un quad
« le: Avril 27, 2014, 11:59:19 pm »
Bonjour,

Voici mon problème, j'ai fait un sf::Quads qui prend la forme d'une tuile isométrique (soit un carré tourné à 45 ° avec sa hauteur divisé par 2) et ensuite j'utilise le texCoords pour lui coller une texture. Mais le soucis c'est que ma texture est carré et là je bloque ... je ne sais pas comment faire pour que ma texture soit correctement affichée ...

Sans texture :



Voici la texture que je veux coller :


12
Graphique / Déplacement d'un objet
« le: Février 27, 2014, 08:11:14 pm »
Bonjour,

J'utilise un tableau qui stock mes projectiles. Jusque là tout va bien, j'arrive à ajouter des projectiles et à les afficher ainsi que les détruire mais je n'arrive pas à les déplacer.
Pourtant quand j'affiche la valeur x et y de ce projectile je vois bien une évolution mais rien ne se passe à l'écran ...

Voici le code du ProjectileManager :

#include "ProjectileManager.h"

ProjectileManager::ProjectileManager() : sf::Sprite()
{
    //ctor
}

ProjectileManager::~ProjectileManager()
{
    //dtor
}

void ProjectileManager::addProjectile(Spaceship &spaceship)
{
    m_projectiles.push_back(Projectile(&spaceship));
}

void ProjectileManager::deleteProjectile()
{
    for (unsigned int i = 0; i < m_projectiles.size(); i++)
    {
         m_projectiles.erase(m_projectiles.begin() + i);
    }
}

void ProjectileManager::drawProjectile(sf::RenderWindow& window)
{
    for (unsigned int i = 0; i < m_projectiles.size(); ++i)
    {
        window.draw(m_projectiles[i]);
    }
}
void ProjectileManager::moveProjectile()
{
    for (unsigned int i = 0; i < m_projectiles.size(); ++i)
    {
        m_projectiles[i].move(0, 1);
        int y = m_projectiles[i].getPosition().y;
        int x = m_projectiles[i].getPosition().x;
        //std::cout << x << " | " << y << std::endl;
    }
}

Ma classe principale :

ProjectileManager projectile;

if ( (event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Space) )
                {
                    projectile.addProjectile(spaceship);
                }
if ( (event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::LControl) )
                {
                    projectile.moveProjectile();
                }

window.clear();
projectile.drawProjectile(window);
window.display();
 


et pour finir voici mon projectile :

#include "Projectile.h"

Projectile::Projectile(Spaceship* spaceship)
{
    Projectile_Blue.setSize(sf::Vector2f(10, 10));
    Projectile_Blue.setPosition(spaceship->getPositionX() + 25, spaceship->getPositionY()+25);
    Projectile_Blue.setFillColor(sf::Color::Blue);
    std::cout << Projectile_Blue.getPosition().y << std::endl;
}
 

13
Graphique / [Résolu]Stocker des textures
« le: Février 23, 2014, 01:58:16 pm »
Bonjour,


J'aimerai pouvoir faire appel à toutes mes textures (une vingtaine) au démarrage de l'application puis à chaque fois que je clic avec la souris.
J'ai une classe qui gère les événements et donc l'appel des textures. (code pour l'appel : Map[ray].setTexture(texture); )
et donc dans le constructeur de ma fonction pour chaque texture je dois faire un pointeur ce qui fait que ma fonction va vite devenir très grande, je me demande si il n'y a pas un autre moyen plus simple.
Je voulais utiliser un TileSet mais j'ai beaucoup de mal ...
Ensuite j'ai pas envie de déclarer toutes mes textures dans la classe event.

Je ne sais pas si j'ai été assez clair, merci de me le dire ;)

Merci d'avance

14
Graphique / [Résolu]Caméra et RectangleShape
« le: Février 22, 2014, 10:28:02 pm »
Bonjour,


Je suis confronté à un soucis, j'utilise sf::View pour me déplacer sur ma map et désormais j'aimerai m'attaquer à la gui et donc afficher un rectangle avec RectangleShape, mais celui-ci prends donc sa position défini par setPosition et bien sûr il ne suit pas la caméra. Il reste ancré au "second plan".
J'aimerai que mon rectangle suive la caméra mais je ne sais point comment faire ...

Merci d'avance de votre aide.

15
Système / Problème d'intégration d'un thread dans une classe
« le: Septembre 28, 2013, 06:46:12 pm »
Bonjour

Voilà mon problème je souhaite faire des projectiles donc j'utilise un thread. Mais je n'arrive pas à intégrer un thread dans ma scène principale afin de lier ma classe projectile malgré avoir regardé la doc sur les threads ...

Voici mon code :

#include "Projectile.h"

Projectile::Projectile()
{
    Projectile_Blue.setSize(sf::Vector2f(1, 1));
    Projectile_Blue.setPosition(0, 400);
    Projectile_Blue.setFillColor(sf::Color::Blue);
}

void Projectile::Move(sf::RenderWindow &window)
{
    sf::FloatRect ProjectileBox(Projectile_Blue.getPosition(), Projectile_Blue.getSize());
    bool the_end = true;

    while(the_end)
    {
        if (ProjectileBox.contains(window.getSize().x, Projectile_Blue.getPosition().y))
        the_end = false;
        Projectile_Blue.move(5, 0);
        sf::sleep(sf::milliseconds(25));
    }
}

void Projectile::setPosition(int x, int y)
{
    Projectile_Blue.setPosition(x, y);
}

int Projectile::getPositionX(){ return Projectile_Blue.getPosition().x; }
int Projectile::getPositionY(){ return Projectile_Blue.getPosition().y; }
 

#ifndef PROJECTILE_H
#define PROJECTILE_H

#include <SFML/Graphics.hpp>
#include <iostream>

class Projectile : public sf::Drawable
{
    public:
        Projectile();

        void Move(sf::RenderWindow &window);
        void setPosition(int x, int y);

        int getPositionX();
        int getPositionY();

    private:
        virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const
        {
            target.draw(Projectile_Blue, states);
        }

        sf::RectangleShape Projectile_Blue;
};

#endif // PROJECTILE_H
 


#include "Scene.h"

sf::Clock horloge;
sf::Time tempsFrame;

Scene::Scene()
{
    sf::RenderWindow window(sf::VideoMode(), "Warrior Of Space", sf::Style::Fullscreen);
    window.setKeyRepeatEnabled(true);
    window.setFramerateLimit(60);

    sf::Texture image;
    if(!image.loadFromFile("Ressources/Background.png"))
       std::cout<<"Error"<<std::endl;
    sf::Sprite background(image);

    Spaceship spaceship;
    Projectile projectile;
    Gui gui(&spaceship);

    sf::View camera(sf::FloatRect(0, 0, 800, 600));
    sf::Thread t_projectileMove(std::bind(&Projectile::Move, &projectile, &window));

    float timer;

    while (window.isOpen())
        {
            timer += m_tempsFrame.asSeconds();
            sf::Event event;
            while (window.pollEvent(event))
            {
                if (event.type == sf::Event::Closed)
                {
                    window.close();
                    t_projectileMove.terminate();
                }

                if (event.type == sf::Event::Resized)
                {
                    sf::FloatRect visibleArea(0, 0, event.size.width, event.size.height);
                    window.setView(sf::View(visibleArea));
                }

                if ( (event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Escape) )
                {
                    window.close();
                    t_projectileMove.terminate();
                }


                if ( (event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Right) )
                {
                    spaceship.Move(5, 0);
                }
                if ( (event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Left) )
                {
                    spaceship.Move(-5, 0);
                }
                if ( (event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Z) )
                {
                    spaceship.addHealth(+5);
                }
                if ( (event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::A) )
                {
                    spaceship.addHealth(-5);
                }
                if ( (event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Space) )
                {
                    t_projectileMove.terminate();
                    t_projectileMove.launch();
                }
            }

            std::cout << spaceship.getHealth() << std::endl;

            window.clear();
            window.draw(background);
            window.draw(spaceship);
            window.draw(projectile);
            window.draw(gui);
            gui.Update(&spaceship);
            m_tempsFrame = m_horloge.restart();
            window.setView(camera);
            window.display();
        }
}
 


#ifndef SCENE_H
#define SCENE_H

#include <SFML/Graphics.hpp>
#include <iostream>
#include <functional>

#include "Spaceship.h"
#include "Projectile.h"
#include "Gui.h"

class Scene
{
    public:
        Scene();

    private:
        sf::Clock m_horloge;
                sf::Time m_tempsFrame;
};

#endif // SCENE_H
 

Pages: [1]
anything