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 - Ultima

Pages: [1]
1
Graphique / Re : [Résolu][SFML2.0] Image/Texture/Sprite
« le: Octobre 14, 2012, 12:14:51 pm »
Encore merci :)

Edit :
J'ai donc ajouter l'attribut myImage dans ma classe, j'ai mis une méthode getImage() qui me renvoie l'image et que je traite dans le main, ça marche parfaitement. Mais toujours le même résultat pour le getSprite()

main.cpp
#include "Personnage.h"
#include "constantes.h"

// #include <iostream>
// #include <sstream>
#include <stdio.h>
#include <stdlib.h>

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

using namespace std;
using namespace sf;

int main()
{

    sf::RenderWindow window(sf::VideoMode(LARGEUR_FENETRE, HAUTEUR_FENETRE), "Jeu");
    window.setKeyRepeatEnabled(false);
    window.setMouseCursorVisible (true);
    window.setFramerateLimit(60);


 sf::IntRect subRect(0,0,30,40);
 sf::Vector2f position(0,0);

   Personnage perso ("Eau/sprite.png", subRect, position);


   // spritePerso2.setTextureRect(IntRect(30, 0, 30, 40));



    sf::Event event;
    while (window.isOpen())
    {

        while (window.waitEvent(event))
        {
/*
            window.clear(sf::Color::White);
*/

            window.draw(perso.getSprite());

/*
        sf::Texture mySprite1;
        mySprite1.loadFromImage(perso.getImage());
        sf::Sprite sp;
        sp.setTexture(mySprite1);

            window.draw(sp);
*/


            if (event.type == sf::Event::Closed)
                window.close();


            window.display();
        }
    }

    return 0;
}
 

Personnage.h
#ifndef PERSONNAGE_H
#define PERSONNAGE_H

#include <iostream>
#include <string>

#include <SFML/Graphics.hpp>

class Personnage
{
    public:
        Personnage(const std::string & filePath, sf::IntRect subRect, sf::Vector2f position);
        virtual ~Personnage();

        sf::Sprite getSprite();
        sf::Image getImage();
/*
        void recevoirDegats(int nbDegats);
        void attaquer(Personnage &cible);
*/

    protected:
    private:

        sf::Image myImage;
        sf::Sprite mySprite[4]; //a changer
        sf::Sprite spriteActuel;


};

#endif // PERSONNAGE_H
 

Personnage.cpp
#include "Personnage.h"

#include <string>

using namespace std;

Personnage::Personnage(const string &filePath, sf::IntRect subRect, sf::Vector2f position)
{
    if(!myImage.loadFromFile(filePath))
    {
        cout << "erreur" << endl;
    }
    else
    {
        myImage.createMaskFromColor(sf::Color(255,0,255));
        sf::Texture mySprite1;
        mySprite1.loadFromImage(myImage);

        for(int i=0 ; i<4 ; i++)
        {
            mySprite[i].setTexture(mySprite1);
            mySprite[i].setTextureRect(sf::IntRect(30*i, 0, 30, 40));
        }

        spriteActuel = mySprite[0];

    }
}

sf::Sprite Personnage::getSprite()
{
    return spriteActuel;
}
sf::Image Personnage::getImage()
{
    return myImage;
}

Personnage::~Personnage()
{

}


Voici le code que j'ai, en version light pour cibler le pb

2
Graphique / Re : [SFML2.0] Image/Texture/Sprite
« le: Octobre 14, 2012, 10:58:50 am »
Merci pour ta réponse, mais alors comment faire pour garder l'image en mémoire autrement qu'en la déclarant dans le main ? C'est une histoire de pointeurs ? (Si c'est le cas, je retourne les re[...]travailler de suite)

3
Graphique / [SFML2.0] Image/Texture/Sprite
« le: Octobre 13, 2012, 07:53:43 pm »
Bonjour !

Mon titre est assez vague car j'ai quelques questions concernant les 3 thèmes du titre :

Première question ou plutôt problème, j'ai créer une classe Personnage et lorsque j'essaie de l'afficher dans mon main, un rectangle blanc s'affiche, voici le code de ma classe Personnage :

Personnage::Personnage(const string &filePath, sf::IntRect subRect, sf::Vector2f position)
{
    if(!myImage.loadFromFile(filePath))
    {
        cout << "erreur" << endl;
    }
    else
    {
        // l'image est correctement chargée
        myImage.createMaskFromColor(sf::Color(255,0,255));
        sf::Texture mySprite1;
        mySprite1.loadFromImage(myImage);

        for(int i=0 ; i<4 ; i++)
        {
            mySprite[i].setTexture(mySprite1);
            mySprite[i].setTextureRect(sf::IntRect(30*i, 0, 30, 40));
        }

        spriteActuel = mySprite[0];

    }
}

sf::Sprite Personnage::getSprite()
{
    return spriteActuel; //même problème en faisant return mySprite[0];
}
 

ainsi que mon appel de fonction : window.draw(perso.getSprite());

J'ai encore beaucoup de mal avec les pointeurs donc le problème vient probablement de là (puisque qu'en créant l'objet dans le main sans passer par un constructeur, avec le même code, ça marche)


Deuxième question, est on obligé de passer par une Texture pour passer d'une Image à un Sprite ?
        sf::Texture mySprite1;
        mySprite1.loadFromImage(myImage);


Merci d'avance pour avoir pris le temps de me répondre :)

4
Général / Re : [SFML2]CodeBlock, impossible de compiler
« le: Avril 24, 2012, 04:14:26 pm »
Voilà pour le .cbp


EDIT : J'ai trouvé !

C'est dans Settings -> compiler and debugguer, dans Linker Settings, j'avais fais des modifications pour SFML 1.6 et entre temps j'ai désinstaller/tout supprimer puis réinstaller, je pensais qu'ils auraient été supprimés O_O

Merci d'avoir pris du temps pour m'aider, et je suis vraiment content que ça marche ! Merci !

[attachment deleted by admin]

6
Général / Re : [SFML2]CodeBlock, impossible de compiler
« le: Avril 24, 2012, 03:43:37 pm »
Dans Linker settings/Link libraries j'ai :
sfml-graphics-s
sfml-window-s
sfml-system-s

7
Général / [SFML2]CodeBlock, impossible de compiler
« le: Avril 24, 2012, 03:10:48 pm »
Bonjour à tous !

Durant plusieurs heures hier, j'ai essayé d'utiliser SFML1.6 avec codeblock, j'ai tout essayé et finalement j'ai compris que c'était l'incompatibilité avec ATI, malgré que j'ai fais les liens statiques, ça ne marchait pas.

J'ai donc décidé de passer à la SFML 2.0, j'ai suivi le tuto à la lettre pour Codeblock et pourtant ça ne marche pas. ( Je suis maudit avec SFML.)


J'ai essayé le code donné pour tester :

#include <SFML/Graphics.hpp>


int main()
{
    sf::RenderWindow window(sf::VideoMode(300, 200), "SFML works!");
    sf::Text text("Hello SFML");

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.draw(text);
        window.display();
    }


    return 0;
}
 

Voici le rapport d'erreur :
http://hapshack.com/?v=mq1du.png

Merci d'avance !

J'ai bien mis SFML_STATIC, les -sfml-XXX-s dans l'ordre , les liaisons include et lib.
J'ai juste pas essayé en dynamic mais j'y crois plus là :/

Pages: [1]
anything