SFML(简单快速多媒体库)是一种用C ++编写的便携且易于使用的多媒体API。您可以将其视为SDL的现代,面向对象的替代方案。 SFML由几个软件包组成,完全满足您的需求。您可以将SFML用作与OpenGL交互的最小窗口系统,或者作为用于构建游戏或交互式程序的全功能多媒体库。
hb 你给我一些很好的 sfml 替代品,因为 sfml csnt 加载字体 [关闭]
因为 sfml 无法加载字体,有哪些好的 sfml 替代品? 我问了好几个星期,而且很详细。也许实际上是有帮助的,而不是无视我或对 c++ &l 没有任何线索......
我写了一个简单的 SFML 程序,我想看看有什么变化,具体的排序算法是如何工作的。我怎样才能做到这一点。我尝试了多线程,但我可能对你的知识薄弱......
ObjectName 未知覆盖说明符。缺少类型说明符[关闭]
我在 Board chessBoard 对象上遇到了这两个错误。我不明白错误。 我试着搜索错误,但我看不出这些解释与我的代码有什么关系。
我正在尝试在我的 sfml 应用程序中实现着色器,但没有成功。在 ubuntu 上使用 g++ 编译时出现以下错误: 无法编译顶点着色器: 0:1(1):错误:重复
CMake 构建时出错:FREETYPE_LIBRARY 中缺少项目
我正在尝试在运行于 wsl-ubuntu 上的 Microsoft Visual Code 上安装测试程序 (https://github.com/o-reo/push_swap_visualizer)。 该程序的开发人员说,为了安装...
无法从“b2BodyUserData”转换为“sf::Shape *”
我结合了 sfml 和 box2d。但是我的源代码有错误。 在这段代码中 sf::Shape* shape = static_cast(body->GetUserData()); 如何从 b2bodyuserdata 转换为 sf::
“找不到<SFML/Graphics.hpp>”,除非包含在 main.cpp
我开始学习 C++ 的 SFML,我设法设置它(我认为),只要我在 main.cpp 中编译我的练习,一切都很好,但是一旦我尝试 #包括 里面...
我有 108 个 GLfloat 变量的数组,它们形成 36 个顶点和相同的颜色数组。 #包括 #包括 #包括 #包括 我有 108 个 GLfloat 变量的数组,它们形成 36 个顶点和相同的颜色数组。 #include <iostream> #include <SFML/Graphics.hpp> #include <GL/glew.h> #include <GL/GL.h> #include <glm/glm.hpp> #include <glm/gtc/matrix_transform.hpp> const GLchar* codeVertArray[] = { "#version 460\nin vec3 VertexPosition;layout(location = 1) in vec3 vertexColor;out vec3 Color;uniform mat4 RotationMatrix;void main(){Color = vertexColor;gl_Position = RotationMatrix * vec4(VertexPosition / 2, 1.0);}" }; const GLchar* codeFragArray[] = { "#version 460\n in vec3 Color;\nout vec4 FragColor;\nvoid main()\n {FragColor = vec4(Color, 1);}" }; GLfloat g_vertex_buffer_data[] = { -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f }; static const GLfloat g_color_buffer_data[] = { 0.583f, 0.771f, 0.014f, 0.609f, 0.115f, 0.436f, 0.327f, 0.483f, 0.844f, 0.822f, 0.569f, 0.201f, 0.435f, 0.602f, 0.223f, 0.310f, 0.747f, 0.185f, 0.597f, 0.770f, 0.761f, 0.559f, 0.436f, 0.730f, 0.359f, 0.583f, 0.152f, 0.483f, 0.596f, 0.789f, 0.559f, 0.861f, 0.639f, 0.195f, 0.548f, 0.859f, 0.014f, 0.184f, 0.576f, 0.771f, 0.328f, 0.970f, 0.406f, 0.615f, 0.116f, 0.676f, 0.977f, 0.133f, 0.971f, 0.572f, 0.833f, 0.140f, 0.616f, 0.489f, 0.997f, 0.513f, 0.064f, 0.945f, 0.719f, 0.592f, 0.543f, 0.021f, 0.978f, 0.279f, 0.317f, 0.505f, 0.167f, 0.620f, 0.077f, 0.347f, 0.857f, 0.137f, 0.055f, 0.953f, 0.042f, 0.714f, 0.505f, 0.345f, 0.783f, 0.290f, 0.734f, 0.722f, 0.645f, 0.174f, 0.302f, 0.455f, 0.848f, 0.225f, 0.587f, 0.040f, 0.517f, 0.713f, 0.338f, 0.053f, 0.959f, 0.120f, 0.393f, 0.621f, 0.362f, 0.673f, 0.211f, 0.457f, 0.820f, 0.883f, 0.371f, 0.982f, 0.099f, 0.879f }; int main() { using glm::mat4; using glm::vec3; sf::RenderWindow window(sf::VideoMode(1000, 1000), "My window"); window.setActive(); window.setFramerateLimit(60); if (glewInit() != GLEW_OK) { std::cout << "Glew init problem" << std::endl; return -1; } GLuint vertexShader = glCreateShader(GL_VERTEX_SHADER); glShaderSource(vertexShader, 1, codeVertArray, nullptr); GLuint fragShader = glCreateShader(GL_FRAGMENT_SHADER); glShaderSource(fragShader, 1, codeFragArray, nullptr); GLuint shaderHandle = glCreateProgram(); glAttachShader(shaderHandle, vertexShader); glAttachShader(shaderHandle, fragShader); glLinkProgram(shaderHandle); glDeleteShader(vertexShader); glDeleteShader(fragShader); GLuint vao; GLuint VAOposId; GLuint colorbuffer; glGenVertexArrays(1, &vao); glBindVertexArray(vao); glGenBuffers(1, &VAOposId); glBindBuffer(GL_ARRAY_BUFFER, VAOposId); glBufferData(GL_ARRAY_BUFFER, sizeof(g_vertex_buffer_data), g_vertex_buffer_data, GL_STATIC_DRAW); glEnableVertexAttribArray(0); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (void*)0); glGenBuffers(1, &colorbuffer); glBindBuffer(GL_ARRAY_BUFFER, colorbuffer); glEnableVertexAttribArray(1); glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, (void*)0); glBufferData(GL_ARRAY_BUFFER, sizeof(g_color_buffer_data), g_color_buffer_data, GL_STATIC_DRAW); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindVertexArray(0); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LESS); mat4 rotationMatrix = mat4(1.0f); float angle = 0; while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)) { if (event.type == sf::Event::Closed) window.close(); } glUseProgram(shaderHandle); rotationMatrix = glm::rotate(mat4(1.0f), glm::radians(angle), vec3(0, 1, 1)); GLuint location = glGetUniformLocation(shaderHandle, "RotationMatrix"); angle++; glUniformMatrix4fv(location, 1, GL_FALSE, &rotationMatrix[0][0]); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClearColor(0, 0, 0, 1); glBindVertexArray(vao); glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); glDrawArrays(GL_TRIANGLES, 0, 36); window.display(); } return 0; } 我为此创建了 2 个 VBO 并将其添加到 VAO: glGenVertexArrays(1, &vao); glBindVertexArray(vao); glGenBuffers(1, &VAOposId); glBindBuffer(GL_ARRAY_BUFFER, VAOposId); glBufferData(GL_ARRAY_BUFFER, sizeof(g_vertex_buffer_data), g_vertex_buffer_data, GL_STATIC_DRAW); glEnableVertexAttribArray(0); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (void*)0); glGenBuffers(1, &colorbuffer); glBindBuffer(GL_ARRAY_BUFFER, colorbuffer); glEnableVertexAttribArray(1); glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, (void*)0); glBufferData(GL_ARRAY_BUFFER, sizeof(g_color_buffer_data), g_color_buffer_data, GL_STATIC_DRAW); glBindBuffer(GL_ARRAY_BUFFER, 0); 然后在window update cycle中绘制VAO: glBindVertexArray(vao); glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); glDrawArrays(GL_TRIANGLES, 0, 36); 但是有些三角形渲染有问题 https://imgur.com/a/Wfk5au0 我只用渲染代码创建新项目https://github.com/DLOzTOR/CubeOpenGL,但仍然有这个问题。 也许缓冲区配置或 glDrawArrays 设置有问题?
如何使用 CMake 和 CMakeLists 将 SFML 库添加到我的 Qt 项目中? 这是我的文件夹结构: 在“外部库”中是我提取 SFML zip 的地方:
当我调整sfml窗口的大小时,当我剪切resize使其变小,再调整resize使其变大时,它给你一个非常奇怪的效果。如何让调整大小更漂亮?代码来自 ...
嗨,大家好 为了让我的sfml程序能够友好地缩放,我想弄清楚,程序最初运行时,在(640,480)的尺寸下,显示出一个这样的窗口......。
有没有办法在sfml中制作一个动画.不是用sprite sheets.而是用1个矩形去另一个位置.https:/gyazo.com0952a960bd7f9e5c9c5e1fe71d0f0b45我想要一个冲撞效果 ...
我想用F#创建一个SFML应用程序,由于没有f#教程,我想从c#教程中学习。我完全不懂c#,只懂f#的基础知识。我看到这篇 ...
我想在C++上创建模拟。我想:当我按下鼠标键时,坐标中应该出现一个圆。我想使用类、void或结构体。当我点击鼠标时调用它的类(我......)。
我正在写一个程序,打开一个窗口并在上面显示一些东西。但是,如果我运行它就会产生一个终端窗口。但是,如果通过双击文件来运行,我不想要一个终端。在...
我已经尝试安装SFML好几个月了,但毫无进展。今天我决定再试一次。一开始它甚至找不到SFML\graphics.hpp的include文件,但我最终还是解决了这个问题。现在我得到了一个 ...
链接库错误 cmissing dllwrong version?
严重性代码描述 项目文件行抑制状态 错误 LNK1120 22 未解决的外部文件 OpenGL2 C:\Users\Darek\source\repos\OpenGL2\Debug\OpenGL2.exe 1 错误 LNK2019 ....
输入代码 sf::FloatRect textRect = text.getLocalBounds(); /Font if(!font.loadFromFile("arial.ttf")){}。/Tło - trzeba załadować if(!texture.loadFromFile("bg_menu.png")){}。/play mainMenu[0].setFont(...)
我正在用这本名为《C++游戏编程入门》的书来学习,嗯,游戏编程。下面是书中的一个片段,在SFML窗口中显示第一个游戏的背景。...