Форум программистов, компьютерный форум CyberForum.ru

Вместо отображения спрайта выводится белый квадрат в окне: в чём ошибка? - C++

Восстановить пароль Регистрация
 
Stitch Igorek
 Аватар для Stitch Igorek
44 / 44 / 17
Регистрация: 02.04.2016
Сообщений: 300
Завершенные тесты: 1
02.04.2016, 13:19     Вместо отображения спрайта выводится белый квадрат в окне: в чём ошибка? #1
В чем может быть ошибка? Вместо отображения спрайта выводиться белый квадрат в окне.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <SFML\Graphics.hpp>
 
class test
{
private:
    sf::Sprite sprite;
public:
    test::test()
    {
        sf::Texture texture;
        texture.loadFromFile("images.png");
        sprite.setTexture(texture);
        sprite.setTextureRect(sf::IntRect(0, 0, 100, 100));
    }
    const sf::Sprite getSprite()
    {
        return sprite;
    }
};
 
int main()
{
    sf::RenderWindow window;
    window.create(sf::VideoMode(500, 500), "");
 
    test f;
    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }
 
 
        window.clear();
        window.draw(f.getSprite());
        window.display();
    }
 
    return 0;
}
Добавлено через 3 часа 6 минут
Если объявляется и инициализируется спрайт в той же функции, что и окно(в моем случае в мэйне), то все хорошо отрисовывается, но если засунуть этот же спрайт в метод класса, то картинка не отрисовывается, отрисовывается только белый прямоугольник, но размеры и местоположение правильные.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2016, 13:19     Вместо отображения спрайта выводится белый квадрат в окне: в чём ошибка?
Посмотрите здесь:

не выводится текст в окне( C++
в чём ошибка C++
C++ в чём ошибка C++
Почему вместо 2 выводится белеберда? C++
В чём ошибка? C++
Указатели, почему выводится строка вместо символа? C++
C++ wchar_t. Вместо буквы выводится число

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,915
Записей в блоге: 2
Завершенные тесты: 1
02.04.2016, 13:42     Вместо отображения спрайта выводится белый квадрат в окне: в чём ошибка? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Stitch Igorek Посмотреть сообщение
Вместо отображения спрайта выводиться белый квадрат в окне
где обработка ошибок?
Уверены, что текстура загрузилась или опять на авось?

Добавлено через 1 минуту
Да тут батюшки что...
C++
1
2
3
4
5
6
7
    test::test()
    {
        sf::Texture texture;//после завершения конструктора эта текстура уничтожится и спрайт будет с "висячим" указателем на текстуру.
        texture.loadFromFile("images.png");
        sprite.setTexture(texture);
        sprite.setTextureRect(sf::IntRect(0, 0, 100, 100));
    }
Stitch Igorek
 Аватар для Stitch Igorek
44 / 44 / 17
Регистрация: 02.04.2016
Сообщений: 300
Завершенные тесты: 1
02.04.2016, 15:05  [ТС]     Вместо отображения спрайта выводится белый квадрат в окне: в чём ошибка? #3
блин точно, я просто думал, что как определил спрайт, текстура больше не нужна, спасибо=)
Yandex
Объявления
02.04.2016, 15:05     Вместо отображения спрайта выводится белый квадрат в окне: в чём ошибка?
Ответ Создать тему
Опции темы

Текущее время: 15:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru