SFML 是多媒体库,它为PC的各个组件提供简单的界面,用来简化游戏和多媒体应用程序的开发。 主要由五个模块组成,分别是:系统,窗口,图形,音频和网络。
SFML 是跨平台的,通过 SFML,你的应用程序可以在最常见的操作系统上进行编译和运行:Windows,Linux,macOS以及Android和iOS。
官网地址:https://www.sfml-dev.org/
安装及使用
环境:win7 VS2015
1. 下载SFML:
地址:https://github.com/SFML/SFML
2. cmake打开生成VS工程:
需要修改一下 CMAKE_IUNSTALL_PREFIX 目录,根据自己工程目录习惯设置,这个目录是编译后生成的SDK目录包含include文件、dll文件、lib文件。
如下图:
点击 Configure、Generate 生成工程文件到build目录中,
选择Install 项目进行编译
在SFML-master\SFML目录下生成四个文件夹:bin、include、lib、share。我们主要用bin、include、lib三个文件夹中的文件。
3. opengl项目配置:
a. 项目属性 ----> C/C++ —> 附加包含目录 —> your_path\SFML-master\SFML\include
b. 项目属性 ----> 链接器 —> 常规 —> 附加库目录 —> your_path\lib
c. 项目属性 ----> 链接器 —> 输入 —> 附加依赖项 —>
openal32.lib
sfml-audio-d.lib
sfml-graphics-d.lib
sfml-main-d.lib
sfml-network-d.lib
sfml-system-d.lib
sfml-window-d.lib
4. 代码:
这里使用SFML创建一个窗口,并绘制一个圆。
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
int main(int argc, char const *argv[])
{
sf::RenderWindow window(sf::VideoMode(400, 400), "Circle");
window.setFramerateLimit(60);
sf::CircleShape circle(150);
circle.setFillColor(sf::Color::Blue);
circle.setPosition(10, 20);
while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed
|| (event.type == sf::Event::KeyPressed
&& event.key.code == sf::Keyboard::Escape)) {
window.close();
}
window.clear();
window.draw(circle);
window.display();
}
}
return 0;
}