SFML nie chce załadować tekstury z pliku

0

Witam,
mam problem dziwny trochę, SFML mimo, że robię według dokumentacji, na siłę nie chce mi załadować z pliku tekstury do sprite, nie wiem, może to przez to że używam Visual Studio 2012. Bez używania texture i sprite program działa i się kompiluje. Jakby ktoś mógł rzucić okiem na kod. Z góry dzięki za pomoc :)

#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
 
using namespace sf;
 
int main() {
  RenderWindow window( VideoMode( 800, 600, 32 ), "SFML");
 
  Texture background;
  if (!background.loadFromFile("tlo.png")) // tlo.png 800x600
    return EXIT_FAILURE;
  Sprite sprite(background);
 
  CircleShape circle;
  circle.setFillColor(Color(255, 0, 0));
  circle.setRadius(50);
  circle.setOutlineThickness(1);
  circle.setOutlineColor(Color(255, 255, 255));
  circle.setPosition(-50, -50);
 
  RectangleShape rect;
  rect.setFillColor(Color(0, 0, 255));
  rect.setSize(Vector2f(64, 64));
  rect.setPosition(Vector2f(-32, -32));
 
  View view(Vector2f(0.0f, 0.0f), Vector2f(800, 600));
  window.setView(view);
 
  while(window.isOpen()) {
    Event event;
 
    while(window.pollEvent(event)) {
      if(event.type == Event::Closed) {
        window.close();
      }
 
      if(event.type == Event::KeyPressed && event.key.code == Keyboard::Right) {
        circle.setPosition(circle.getPosition().x + 2, circle.getPosition().y);
      }
 
      if(event.type == Event::KeyPressed && event.key.code == Keyboard::Left) {
        circle.setPosition(circle.getPosition().x - 2, circle.getPosition().y);
      }
 
      if(event.type == Event::KeyPressed && event.key.code == Keyboard::Up) {
        circle.setPosition(circle.getPosition().x, circle.getPosition().y - 2);
      }
 
      if(event.type == Event::KeyPressed && event.key.code == Keyboard::Down) {
        circle.setPosition(circle.getPosition().x, circle.getPosition().y + 2);
      }
    }
 
    window.clear();
    window.draw(sprite);
    window.draw(circle);
    window.draw(rect);
 
    window.display();
  }
 
  return 0;
}
0

Może tlo.png znajduje się nie w tym miejscu, w którym program szuka? Wypisz sobie do konsoli bieżący katalog (funkcja system("pwd"); z nagłówka cstdlib) i się dowiesz gdzie masz wsadzić tlo.png.

0

No i tu pojawia się problem bo przy wypisaniu w konsoli katalogu, pokazuje mi "tlo.png"

0

a żadnych błędów na konsolę SFML ci nie wypluwa?

0

Jak chce wczytać to pokazuje "wall of text" różnych dziwnych znaczków, tak jakby na konsole wypluło ten plik, a okno SFML mam białe, wyjątek zostaje rzucony i program zostaje zatrzymany (Błąd naruszenia ochrony pamięci). A w debbugerze pokazuje obiekt texture, że tam nic nie załadowało, czyli x = 0, y = 0 i adres pamięci = null. Strasznie to jest dziwne, jak w konsoli mi wcześniej pokazało, że ten plik jest widoczny, to raczej powinien się załadować, no chyba, że w Visual 2012 teraz jakoś inaczej się dodaje pliki do projektu^^

1 użytkowników online, w tym zalogowanych: 0, gości: 1