标签: sfml

Qt Creator/QMake链接库

我正在使用SFML,我想将Qt Creator与它结合使用.当我手动编译时,我向链接器提供以下参数-lsfmlsystem -lsfmlwindow.

如果我使用Qt Creator和(我认为)QMake,我该怎么做?

c++ qmake qt-creator sfml

6
推荐指数
1
解决办法
6928
查看次数

使用SFML在第二台显示器上打开全屏窗口?

有没有办法在第二台显示器上使用SFML打开全屏窗口?

c c++ windows sfml

6
推荐指数
1
解决办法
1036
查看次数

SFML错误loadFromFile()

我有以下代码:

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

int main(int argc, char* argv[])
{
    sf::RenderWindow window(sf::VideoMode(640, 480), "SFML Render");
    sf::Image image;
    sf::Texture texture;
    sf::Sprite sprite;

    image.loadFromFile("D:/Project/Sprites/bt1.png");
    texture.loadFromImage(image);
    sprite.setTexture(texture);
    sprite.setPosition(100.0f, 100.0f);

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

        window.clear();
        window.draw(sprite);
        window.display();
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这很简单,但没有用.

我尝试使用不同种类的路径:

D:/Project/CPP/Game_Engine/Debug/sprites/first.bmp
D:\\Project\\CPP\\Game_Engine\\Debug\\sprites\\first.bmp
d:\\Project\\CPP\\Game_Engine\\Debug\\sprites\\first.bmp
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用不同的文件:

D:/Project/Sprites/bt.png
D:/Project/Sprites/anim.bmp
D:/Project/Sprites/boy.jpg
Run Code Online (Sandbox Code Playgroud)

编译器指示在以下行:

image.loadFromFile("D:/Project/Sprites/bt1.png");
Run Code Online (Sandbox Code Playgroud)

更确切地说,程序在此行崩溃. 在此输入图像描述

我的配置如下: 在此输入图像描述

错误/崩溃消息如下:

Необработанноеисключениепоадресу0x5007DEF8(msvcr110.dll)вSFML_ERROR.exe:0xC0000005:нарушениеправдоступапричтениипоадресу0x03BC1000.

翻译如下:

SFML_ERROR.exe中0x5007DEF8(msvcr110.dll)的未处理异常:0xC0000005:地址0x03BC1000上的访问冲突读取.

c++ visual-c++ sfml

6
推荐指数
1
解决办法
6450
查看次数

简单的C++ SFML程序高CPU使用率

我目前正在开发平台并尝试实现时间步长,但对于超过60的帧速率限制,CPU使用率从1%上升到25%甚至更高.

我制作了这个最小程序来演示这个问题.代码中有两条注释(第10-13行,第26-30行)描述了问题以及我测试过的内容.

请注意,FPS的东西与问题无关(我认为).

我试着让代码简洁明了:

#include <memory>
#include <sstream>
#include <iomanip>
#include <SFML\Graphics.hpp>

int main() {
  // Window
  std::shared_ptr<sf::RenderWindow> window;
  window = std::make_shared<sf::RenderWindow>(sf::VideoMode(640, 480, 32), "Test", sf::Style::Close);
  /*
  When I use the setFramerateLimit() function below, the CPU usage is only 1% instead of 25%+
  (And only if I set the limit to 60 or less. For example 120 increases CPU usage to 25%+ again.)
  */
  //window->setFramerateLimit(60);

  // FPS text
  sf::Font font;
  font.loadFromFile("font.ttf");
  sf::Text fpsText("", font, 30);
  fpsText.setColor(sf::Color(0, 0, 0));

  // FPS …
Run Code Online (Sandbox Code Playgroud)

c++ cpu frame-rate cpu-usage sfml

6
推荐指数
1
解决办法
3385
查看次数

无法调用 XInitThreads

我写了一个 SFML C++ 游戏,并试图开始使用线程,但过了一段时间一切都崩溃了。搜索后我发现修复似乎是调用 XInitThreads(); 但这以某种方式不起作用。

简化代码:

    #include <X11/Xlib.h>   

    int main() {        
    XInitThreads();
    //other stuff
    return 1337;
    }
Run Code Online (Sandbox Code Playgroud)

我尝试编译时收到的错误消息是“对符号‘XInitThreads’的未定义引用。难道头文件正在工作,但没有实现该方法的文件?

c++ xlib sfml

6
推荐指数
1
解决办法
1万
查看次数

如何使用自定义光标?

我正在尝试将默认操作系统光标更改为自定义光标。截至目前,我只处理 Windows。我得到了一个带有我想要的光标的图像文件(.png,我应该更改格式吗?)。总而言之,我一直在搜索并尝试简单地更改光标,但没有成功。另外,到目前为止,我正在寻找最简单的解决方案,代码行越少越好。

如果相关:-我
正在使用一个用 SFML(2.1) 创建的窗口。
- 以下编译但没有区别:

HCURSOR hCursor = LoadCursor(NULL, "path/filename.png");
SetCursor(hCursor);
Run Code Online (Sandbox Code Playgroud)

所以,我正在寻求社区的知识,有什么想法吗?

以下工作:) 但是它会立即恢复为默认的 Windows 鼠标:

HCURSOR hCursor = LoadCursorFromFile("path/filename.cur");
SetCursor(hCursor);
Run Code Online (Sandbox Code Playgroud)

我找到了这个LINK,这似乎和我的问题一样。
但是,我无法应用链接中给出的答案

HWND windowHandle;
int GCL_Hcursor = -12; //GCL_HCURSOR
HCURSOR hCursor = LoadCursorFromFile("Graphics/Cursors/Pointer_small.cur");
SetCursor(hCursor);
SetClassLong(windowHandle, GCL_Hcursor, (DWORD)hCursor);
Run Code Online (Sandbox Code Playgroud)

我(显然?)得到:

使用了未初始化的局部变量“windowHandle”

c++ windows mfc cursor sfml

6
推荐指数
1
解决办法
8371
查看次数

如何在CLion中运行SFML,错误未定义引用?

我是C++的新手并且尝试学习游戏编程,我选择SFML并使用Jetbrain在CLion上运行并使用Ubuntu机器.我在这里学习SFML和Linux这个教程 我的代码:

#include <SFML/Graphics.hpp>

using namespace sf;

int main() {

RenderWindow window(sf::VideoMode(200, 200), "SFML Work!");
CircleShape shape(100.f);
shape.setFillColor(Color::Green);

while (window.isOpen()) {
    Event event;
    while (window.pollEvent(event)) {
        if (event.type == Event::Closed) {
            window.close();
        }
    }

    window.clear();
    window.draw(shape);
    window.display();
}

return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我在CLion上运行时出错了

CMakeFiles/SFMLBasic.dir/main.cpp.o: In function `main': 
undefined reference to `sf::String::String(char const*, std::locale const&)'
undefined reference to `sf::VideoMode::VideoMode(unsigned int, unsigned int, unsigned int)'
undefined reference to `sf::RenderWindow::RenderWindow(sf::VideoMode, sf::String const&, unsigned int, sf::ContextSettings const&)'
...
undefined reference to `sf::Shape::~Shape()'
Run Code Online (Sandbox Code Playgroud)

我如何配置或设置在CLion中运行SFML,我不知道CMAKE可以做到这一点?我只运行终端, …

c++ gcc cmake sfml clion

6
推荐指数
2
解决办法
9633
查看次数

如何在 Visual Studio Code 中链接 SFML 库?

我已经尝试了几个小时,但似乎无法做到我已经下载了扩展程序并寻求帮助,但此时一切都让我感到困惑。我想在我的项目中包含 SFML 库,我正在尝试使用 Visual Studio Code 编辑器,但由于某种原因它不会遵守。

它目前的样子的图片。 http://imgur.com/qJPlJua

我昨天也已经尝试了几个小时,但它只是不想工作。

sfml visual-studio-code

6
推荐指数
1
解决办法
2万
查看次数

SFML 库未加载错误,未找到图像

我正在尝试在不使用 Xcode 的情况下在我的 OS Mac 上开始使用 SFML,并且已经完成了非 IDE 安装。我正在关注本教程:https : //www.sfml-dev.org/tutorials/2.0/start-linux.php这是 linux 安装页面,但它似乎适合尝试在 mac OS 终端上执行此操作的人。

我有一个 CPP 目录,用于保存我的 example.cpp 文件,在该目录中有一个“Resources”文件夹,用于保存 SFML 的内容。但是,我的终端出现“库未加载”错误,我在网上搜索了一些,但仍然遇到了一些麻烦。从那以后,我在自制软件上添加了“freetype”,但这似乎不起作用。我还确保告诉动态链接器在哪里可以找到 SMFL 库。

el-nino:CPP Home$ g++ -std=c++11 -IResources/SFMLR/include -c example.cpp
el-nino:CPP Home$ g++ example.o -o sfml-app -LResources/SFMLR/lib -lsfml-graphics -lsfml-window -lsfml-system
el-nino:CPP Home$ ./sfml-app
dyld: Library not loaded: @rpath/../Frameworks/freetype.framework/Versions/A/freetype
Referenced from: /Users/Home/Desktop/Junk_Code/CPP/Resources/SFMLR/lib/libsfml-graphics.2.4.2.dylib
Reason: image not found
Abort trap: 6
Run Code Online (Sandbox Code Playgroud)

c++ macos sfml

6
推荐指数
1
解决办法
1307
查看次数

GCC中不同优化级别的不同输出

我正在重写我上学期为大学开发的光线追踪器,但遇到了以下问题:当我在 Debug 中编译和运行我的代码时,输​​出符合预期

预期结果

但是当我启用更高的优化级别(例如“-O2”)时,结果会完全不同:

实际结果

我不确定为什么会发生这种情况。我追踪到球体相交代码

//#pragma GCC push_options
//#pragma GCC optimize("O0")

Intersection Sphere::intersect(const Ray& ray, const float previous) const
{
    const auto oc = ray.origin - center_;
    const auto lhv = -dot(ray.direction, oc);
    const auto discriminant = lhv * lhv - (oc.lensqr() - radius_ * radius_);

    if (discriminant < 0.0F)
    {
        return Intersection::failure();
    }
    float distance;
    const auto rhv = std::sqrt(discriminant);
    const auto r = std::minmax(lhv + rhv, lhv - rhv);
    if (r.first <= 0.0F)
    {
        if (r.second <= 0.0F) …
Run Code Online (Sandbox Code Playgroud)

gcc g++ sfml c++17

6
推荐指数
1
解决办法
132
查看次数

标签 统计

sfml ×10

c++ ×8

gcc ×2

windows ×2

c ×1

c++17 ×1

clion ×1

cmake ×1

cpu ×1

cpu-usage ×1

cursor ×1

frame-rate ×1

g++ ×1

macos ×1

mfc ×1

qmake ×1

qt-creator ×1

visual-c++ ×1

visual-studio-code ×1

xlib ×1