SFML community forums
Help => Graphics => Topic started by: Fantasy on July 07, 2011, 03:57:10 pm
-
hello everyone
i have an image and i want when i press key::M to draw the image but it isnt working
i tried this but the image disappear when releasing M key
if(Game.GetInput().IsKeyDown(sf::Key::M))
Game.Draw(Sprite);
i also tried this and it works perfectly but when i move the mouse the image disappear
while(Game.IsOpened())
{
sf::Event Event;
while(Game.GetEvent(Event))
{
}
Game.Clear();
if(Event.Type == sf::Event::KeyReleased && Event.Key.Code == sf::Key::M)
Game.Draw(Sprite);
Game.Display();
i also tried this but it doesn't work at all
while(Game.IsOpened())
{
sf::Event Event;
while(Game.GetEvent(Event))
{
if(Event.Type == sf::Event::KeyReleased && Event.Key.Code == sf::Key::M)
Game.Draw(Sprite);
}
Game.Clear();
Game.Display();
please can someone help :(
-
You want the image to stay after the key is released, so you can't simply rely on the "key pressed" state or event, you must set a permanent flag.
bool draw = false;
while(Game.IsOpened())
{
sf::Event Event;
while(Game.GetEvent(Event))
{
if(Event.Type == sf::Event::KeyPressed && Event.Key.Code == sf::Key::M)
draw = true;
}
}
Game.Clear();
if (draw)
Game.Draw(Sprite);
Game.Display();
-
You want the image to stay after the key is released, so you can't simply rely on the "key pressed" state or event, you must set a permanent flag.
bool draw = false;
while(Game.IsOpened())
{
sf::Event Event;
while(Game.GetEvent(Event))
{
if(Event.Type == sf::Event::KeyPressed && Event.Key.Code == sf::Key::M)
draw = true;
}
}
Game.Clear();
if (draw)
Game.Draw(Sprite);
Game.Display();
omg thank you so much i have been thinking of a way for the past hour and a half.
thank you :D :D