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.


Messages - lolpuppy

Pages: [1]
1
Graphique / Re : Problème bizarre
« le: Mars 02, 2014, 11:46:07 pm »
J'ai réussi à régler le problème. Mais merci quand même, tu m'as fais découvrir une erreur logique dans mon code :)

2
Graphique / Re : Problème bizarre
« le: Mars 02, 2014, 02:30:47 pm »
le problème n'est pas là, j'ai tout simplement mis une fin a mon programme, car j'ai placé des cout dans mes classe et je voulais éviter de les spammer pour que ce soit plus facile a lire.

J'ai changé le lien, on devrait maintenant pouvoir télécharger mon projet  :)

3
Graphique / Problème bizarre
« le: Mars 02, 2014, 02:35:05 am »
Bonjour, je commence lentement à me familliariser la bibliothèque SFML et je viens de tomber sur un drôle de problème. Premièrement, rien ne s'affichait lorsque je faisais marcher le programme. Après avoir fait quelques tests, j'ai observé que la taille de mes "tuiles" était de 1761751040 alors que je ne fais rien qui pourrait changer la valeur de la variable. Ce que je cherche à faire présentement est simplement une classe "carte" qui pourrait me servir éventuellement. Elle est composée de multiples carrés. J'ai beau avoir cherché, je n'ai pas trouvé la source de mon erreur... Des idées?
Voici le code
Mon main
int main()
{
    const int taille(15);
    const int tailleYTableau(1);
    const int tailleXTableau(2);
    const std::string chemin("water.jpg");

    carte c(tailleXTableau, tailleYTableau, taille, sf::Color::Green);

    //Création de la fenêtre
    sf::RenderWindow window(sf::VideoMode(800, 600), "My window");


    // on fait tourner le programme tant que la fenêtre n'a pas été fermée
    while (window.isOpen())
    {
        // on traite tous les évènements de la fenêtre qui ont été générés depuis la dernière itération de la boucle
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }
        window.clear(sf::Color::Black);

        c.afficher(window);

        window.display();
        window.close();
    }

    return 0;
}
ma classe Map
carte::carte()
{
    //grille = new std::vector <tuile>;
    m_hauteur = 0;
    m_largeur = 0;
    m_taille = 0;
    update();
}
carte::carte(int hauteur, int largeur, int taille)
{
    //grille = new std::vector <tuile>;
    m_hauteur = hauteur;
    m_largeur = largeur;
    m_taille = taille;
    update();
}
carte::carte(int hauteur, int largeur, int taille, sf::Color base)
{
    //grille = new std::vector <tuile>;
    m_hauteur = hauteur;
    m_largeur = largeur;
    m_taille = taille;
    m_couleurBase = base;
    update();
}
carte::~carte() // ok
{
    //delete grille;
}

void carte::afficher(sf::RenderWindow &window)
{
     for(int i(0); i < m_hauteur * m_largeur; i++)
    {
        grille[i].afficher(window);
        grille[i].infos();
    }

}

tuile* carte::creerTuile(int positionX, int positionY, int taille)
{
    tuile t1(taille, sf::Vector2f(positionX, positionY), m_couleurBase);
    tuile *i(&t1);
    return i;
}

void carte::update()
{
    int x, y, nbTotal;
    nbTotal = m_largeur * m_hauteur;
    //delete grille;
    //grille = new std::vector <tuile>;
    grille.resize(m_hauteur * m_largeur);

    for(int i(0); i < nbTotal; i++)
    {
        x = calculerX(m_taille, m_largeur, i);
        y = calculerY(m_taille, m_largeur, i);
        //std::cout << "X : " << x << "  Y : " << y << std::endl;
        grille.push_back(tuile(m_taille, sf::Vector2f(x,y), m_couleurBase));
    }
}

 
et ma classe tuile
tuile::tuile()
{
    m_couleur = sf::Color::Green;
    m_libre = true;
}
tuile::tuile(int taille, sf::Vector2f position, sf::Color couleur)
{
    coordonnees = position;
    m_taille = taille;
    m_couleur = couleur;
    m_libre = true;

    m_forme.setPosition(coordonnees);
    m_forme.setSize(sf::Vector2f(m_taille, m_taille));
    m_forme.setFillColor(couleur);
    m_forme.setOutlineThickness(-1);
    m_forme.setOutlineColor(sf::Color::Black);

}
tuile::tuile(int taille, sf::Vector2f position)
{
    coordonnees = position;
    m_taille = taille;
    m_couleur = sf::Color::Green;
    m_libre = true;

    m_forme.setPosition(coordonnees);
    m_forme.setSize(sf::Vector2f(m_taille, m_taille));
    m_forme.setFillColor(m_couleur);
    m_forme.setOutlineThickness(-3);
    m_forme.setOutlineColor(sf::Color::Black);
}
tuile::tuile(int taille, sf::Vector2f position, std::string texture)
{
    coordonnees = position;
    m_taille = taille;
    m_couleur = sf::Color::Green;
    m_libre = true;

    m_forme.setPosition(coordonnees);
    m_forme.setSize(sf::Vector2f(m_taille, m_taille));
    m_forme.setOutlineThickness(-3);
    m_forme.setOutlineColor(sf::Color::Black);
    setTexture(texture);
}
tuile::~tuile()
{

}
bool tuile::libre()
{
    return m_libre;
}
void tuile::vider()
{
    m_forme.setFillColor(m_couleur);
    m_libre = true;
}
void tuile::setCouleur(sf::Color couleur)
{
    m_couleur = couleur;
    m_forme.setFillColor(couleur);
}
void tuile::setTaille(int taille)
{
    m_taille = taille;
    m_forme.setSize(sf::Vector2f(m_taille, m_taille));
}
void tuile::setCoordonnes(sf::Vector2f position)
{
    coordonnees = position;
}
void tuile::afficher(sf::RenderWindow &window)
{
    window.draw(m_forme);
}
void tuile::setTexture(std::string chemin)
{
    if(m_texture.loadFromFile(chemin, sf::IntRect(10,10, m_taille, m_taille)));
    {
        m_forme.setTexture(&m_texture);
        std::cout << "Plaquage de texture réussi!!" << std::endl;
    }
}
void tuile::infos()
{
    std::cout << "Taille : " << m_taille << std::endl;
    std::cout << "X : " << coordonnees.x << std::endl;
    std::cout << "Y : " << coordonnees.y << std::endl;
}
 

Ps : Certains bouts de code sont en commentaire, ce ne sont que des tests que j'ai voulu faire pour régler le problème ou ce sont des bouts de code que je tiens à garder même s'ils ne me sont pas utile. Merci  :)
Mon projet est téléchargeable ici : https://www.dropbox.com/s/agu3c3ndcyi6t3t/grillage.zip

Pages: [1]