BRUC
@BRUC
"А зори здесь тихие..."

Как решить проблему с неотображением спрайтов в SFML?

Не отображаются спрайты в SFML. Вот:
783bd8d3994c4988b0eb0811409af94e.PNG
Вот код:
#include "SFML\Graphics.hpp"


using namespace sf;

int main()
{
	// Создаем главное окно приложения;
	RenderWindow Window(VideoMode(600, 600), "Pong");

	// Объект;
	Image Player;
	// Загружаем в него файл;
	Player.loadFromFile("hero.png");

	// Текстура;
	Texture Player_texture;
	// Передаем в него объект 'Image';
	Player_texture.loadFromImage(Player);

	// Спрайт
	Sprite Player_sprite;
	// Передаем в него оюъект текстуры;
	Player_sprite.setTexture(Player_texture);
	// Определенные координаты из картинки;
	Player_sprite.setTextureRect(IntRect(0, 192, 96, 96));
	// Начальные координаты появления спрайта;
	Player_sprite.setPosition(50, 25);


	//Главный цикл приложения;
	while (Window.isOpen())
	{
		// Обработка событий в цикле;
		Event Event;

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

		// X,Y; Идем вверх;
		if (Keyboard::isKeyPressed(Keyboard::W)) { Player_sprite.move(0, -0.1); Player_sprite.setTextureRect(IntRect(0, 288, 96, 96)); };
		// Идем вниз;
		if (Keyboard::isKeyPressed(Keyboard::S)) { Player_sprite.move(0, 0.1); Player_sprite.setTextureRect(IntRect(0, 0, 96, 96)); };
		// Идем влево;
		if (Keyboard::isKeyPressed(Keyboard::A)) { Player_sprite.move(-0.1, 0); Player_sprite.setTextureRect(IntRect(0, 96, 96, 96)); };
		// Идем вправо;
		if (Keyboard::isKeyPressed(Keyboard::D)) { Player_sprite.move(0, 0.1); Player_sprite.setTextureRect(IntRect(0, 0, 96, 96)); };


		// Очистка;
		Window.clear();
		// Рисуем спрайт;
		Window.draw(Player_sprite);


		// Отрисовка;
		Window.display();
	};




	return 0;
};


Все вроде бы подключил:
1. Дополнительные каталоги включаемых файлов:
6b3dfe7d777f46e8b0f2592a64a4d2a3.PNG
2. Дополнительные каталоги библиотек:
7464b2a3ee754a66bb6f2dccef81baba.PNG
3. Выходной файл поставил "SFML_STATIC":
a9ff98339f8d4947b267930f23e3d249.PNG
4. Дополнительные библиотеки тоже:
1f3f7dde330a47079449559a3887fd85.PNG

Тайлсет присутствует. Ставил его и около main.cpp и около Pong.exe.
Но вот при запуске все равно нету спрайта, кто знает в чем проблема?
  • Вопрос задан
  • 1568 просмотров
Решения вопроса 1
maaGames
@maaGames
Погроммирую программы
запуск по F5? Рабочая директория та, где лежит sln файл, если явно её не перезадать. Для теста укажи полный путь к png, чтобы исключить все другие возможные ошибки.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
MrNexeon
@MrNexeon
Как ты запускаешь игру и где хранишь текстуру?

Если через Visual Studio, то текстура hero.png должна лежать в папке с исходными файлами игры:

Visual Studio Projects -> Название решения -> Название проекта


Если через exe'шник игры, то текстура hero.png также должна лежать и в соответствующих папках рядом с файлом .exe:

Visual Studio Projects -> Название решения -> Debug
Visual Studio Projects -> Название решения -> Release
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы