无法使用SFML加载图像

问题描述 投票:0回答:1

我正在尝试使用Xcode用SFML加载图像,但是每次我运行该程序时,窗口(已使用该代码创建)都会闪烁并消失...

这是我使用的代码:

#include <SFML/Graphics.hpp>
#include <iostream>

#define SCREEN_WIDTH 1024
#define SCREEN_HEIGHT 1024

int main()
{
    sf::RenderWindow window(sf::VideoMode(SCREEN_WIDTH, SCREEN_HEIGHT), "Orsome Game");



    while(window.isOpen())
    {

        sf::Event e;


        while(window.pollEvent(e))
        {
            switch (e.type)
            {
                case sf::Event::Closed:
                    window.close();

                    break;
            }
        }

        sf::Image image;

        if(!image.loadFromFile("sprite.png")){
            return -1;
        }


        window.clear(sf::Color(255,255,255));

        window.display();

    }
    return EXIT_SUCCESS;
}

也已将图像文件放置在c ++文件所在的位置,但仍然无法使用!

c++ sfml
1个回答
0
投票

我将sf::Style::Default放在RenderWindow参数中,紧随“ Orsome Game”窗口名称之后。因为使用的是pollEvent,所以可以通过按右上角的x按钮退出窗口,如默认应用程序布局。

图片与解决方案文件位于同一目录中吗?还是您的main.cpp?当然应该。并且,也许尝试使用TextureSprite加载图像,如下所示:

sf::Texture texture;
texture.loadFromFile("picturename.png");
sf::Sprite sprite;
sprite.setTexture(texture);

while窗口处于开环状态。

绘制:

// after window.clear() ...

//... your code

window.draw(sprite);

//... other things to draw

// and then, your window.display();

但是,也许您的sf :: Image也应该起作用。告诉我进展如何


编辑:


尝试此代码,看看窗口是否打开。否则,这可能是在计算机上设置SFML的问题,您将必须找到一些有关如何正确设置SFSF的很好的教程!但让我们看看:

#include <SFML/Graphics.hpp>
#include <iostream>

using namespace sf;

int main()
{
    RenderWindow window(VideoMode(640, 640), "Test", Style::Default);

    while (window.isOpen()) {

        Event _event;
        while (window.pollEvent(_event)) {
            switch (_event.type) {
            case Event::Closed:
                window.close();
                break;
            }
        }




        window.clear();


        // draw

        // ...

        window.display();

        }



    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.