簡體   English   中英

無法使用 SFML 加載圖像

[英]Can't load image with SFML

我正在嘗試使用 Xcode 加載帶有 SFML 的圖像,但是每次我運行程序時,window(已使用代碼創建)都會閃爍並消失...

這是我正在使用的代碼:

#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++文件的地方,還是不行!

我會在 RenderWindow arguments 中放置一個sf::Style::Default ,緊跟在“Orsome Game”window 名稱之后。 因為您正在使用 pollEvent,這將允許您通過按右上角的 x 按鈕退出 window,就像默認的應用程序布局一樣。

圖片與您的解決方案文件在同一目錄中嗎? 還是你的 main.cpp? 它應該是,當然。 而且,也許,嘗試使用TextureSprite加載您的圖像,如下所示:

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

在 while window 內部是開環。

繪制它:

// after window.clear() ...

//... your code

window.draw(sprite);

//... other things to draw

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

但是,您的 sf::Image 可能也應該工作。 告訴我進展如何


編輯:


試試這個代碼,看看 window 是否打開。 否則,這可能是在您的計算機上設置 SFML 的問題,您將不得不找到一些關於如何正確設置它的好教程:但是讓我們看看:

#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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM