[英]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? 它應該是,當然。 而且,也許,嘗試使用Texture
和Sprite
加載您的圖像,如下所示:
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.