• SFML - Not drawing sprite
    9 replies, posted
Good evening gentlemen, i have following problem, im trying to draw a sprite but it's just a white square like when it goes out of scope! It loads fine, i tried png and tga. Screenshot(s): [img]http://www.abload.de/img/1g0vm.png[/img] [img]http://www.abload.de/img/241bc.png[/img] Code: [cpp] #include <SFML/System.hpp> #include <SFML/Graphics.hpp> #include <iostream> using namespace std; sf::RenderWindow App(sf::VideoMode(800, 350, 32), "Last Breath"); sf::Event eve; sf::Image img; sf::Sprite dude; int main() { if(!img.LoadFromFile("dude.png")) { App.Close(); } dude.SetImage(img); dude.SetPosition(20, 20); dude.SetScale(23.f, 45.f); dude.SetSubRect(sf::IntRect(1, 1, 2, 2)); while (App.IsOpened()) { dude.SetImage(img); while(App.GetEvent(eve)) { if(eve.Type == sf::Event::Closed) App.Close(); } if(App.GetInput().IsKeyDown(sf::Key::W)){ dude.Move(0.0f, -0.1f); } else if(App.GetInput().IsKeyDown(sf::Key::A)) { dude.Move(-0.1f, 0.0f); } else if(App.GetInput().IsKeyDown(sf::Key::S)) { dude.Move(0.0f, 0.1f); } else if(App.GetInput().IsKeyDown(sf::Key::D)) { dude.Move(0.1f, 0.0f); } /* if(dude.GetPosition().x >= 777) { dude.SetPosition(dude.GetPosition().x-0.1f, dude.GetPosition().y); } else if(dude.GetPosition().x <= 0) { dude.SetPosition(dude.GetPosition().x+0.1f, dude.GetPosition().y); } else if(dude.GetPosition().y >= 305) { dude.SetPosition(dude.GetPosition().x, dude.GetPosition().y-0.1f); } else if(dude.GetPosition().y <= 0) { dude.SetPosition(dude.GetPosition().x, dude.GetPosition().y+0.1f); } */ App.Clear(sf::Color(0, 0, 0)); App.Draw(dude); App.Display(); } return EXIT_SUCCESS; } [/cpp] Thanks in advance!
[code]while (App.IsOpened()) { dude.SetImage(img);[/code] Don't set the image every loop... Since you error check on the file I'm gona assume it's that. Remove line 27.
Thanks no difference tho. :|
What is the actually sprite anyway? You got the alpha channel correct?
This is dude.png [img]http://www.abload.de/img/dude63ic.png[/img] [editline]05:55PM[/editline] Fixed it i thougt setsubrect == setscale. :C
I am having a similar problem too, I had it loading a single sprite and drawing it worked, but when I added a few more I just got white rectangles for them all, anyone know of anything else that can make that happen?
How many times do I have to tell people what the white sprites mean in SFML?
Once more please
[QUOTE=Mattz333;17280732]Once more please[/QUOTE] [url]http://www.facepunch.com/showpost.php?p=17123290&postcount=3[/url] [editline]03:15AM[/editline] Your sf::Image is lost somewhere.
[QUOTE=efeX;17280980][url]http://www.facepunch.com/showpost.php?p=17123290&postcount=3[/url] [editline]03:15AM[/editline] Your sf::Image is lost somewhere.[/QUOTE] Or in any way invalid.
Sorry, you need to Log In to post a reply to this thread.