SFML community forums

Help => General => Topic started by: Kamaitachi on April 13, 2011, 05:43:33 pm

Title: App.Draw() coordinates
Post by: Kamaitachi on April 13, 2011, 05:43:33 pm
Why the following code doesn't draw the image in the point defined by (pos1, pos2)?

Code: [Select]
#include <SFML/System.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <sstream>
#include <string>

class Field
{
    sf::RenderWindow App;
    sf::Image image;
    sf::Sprite sprite;
    public:
    Field(int x, int y) {App.Create(sf::VideoMode(x, y), "SFML");};
    void FEvent();
    void FDisplay (int, int, std::string);
};

void Field::FEvent ()
{
    while(App.IsOpened())
    {
        sf::Event Event;
        while (App.GetEvent(Event))
        {
            if (Event.Type == sf::Event::MouseButtonPressed)
            FDisplay(Event.MouseMove.X, Event.MouseMove.Y, "X.bmp");
        }
    }
}

void Field::FDisplay (int pos1, int pos2, std::string filename)
{
    if(!image.LoadFromFile(filename))
    {
        App.Close();
    }
    sprite.SetImage(image);

    App.Clear();
    sprite.SetPosition(pos1, pos2);
    App.Draw(sprite);
    App.Display();
}

int main()
{
    Field F(315, 315);
    F.FEvent();
}
Title: App.Draw() coordinates
Post by: Laurent on April 13, 2011, 06:02:36 pm
Because you use Event.MouseMove when a MouseButtonPressed event occured. You must use Event.MouseButton.