sfml开始使用sfml


备注

SFML是多媒体

SFML为PC的各个组件提供简单的界面,以简化游戏和多媒体应用程序的开发。它由五个模块组成:系统,窗口,图形,音频和网络。

教程和API文档中更详细地了解它们的功能。

SFML是多平台的

使用SFML,您的应用程序可以在最常见的操作系统上编译和运行:Windows,Linux,Mac OS X以及Android和iOS。

您喜爱的操作系统的预编译SDK可在下载页面上找到

SFML是多语言的

SFML具有C和.Net语言的官方绑定。由于其活跃的社区,它还可以用于许多其他语言,如Java,Ruby,Python,Go等。

绑定页面上了解有关它们的更多信息。

版本

发布日期
1.0 2007-07-01
1.1 2007-09-18
1.2 2008-07-16
1.3 2008-06-22
1.4 2009-01-07
1.5 2009-06-04
1.6 2010-04-06
2.0 2013年4月29日
2.1 2013年7月27日
2.2 情节中字
2.3 2015年5月9日
2.3.1 2015年7月11日
2.3.2 2015年10月12日
2.4.0 2016年8月10日
2.4.1 2016年11月4日
2.4.2 2017年2月8日

安装或设置

  • 将其保存在计算机的任何位置,以便于访问。
  • 打开代码块。
  • 转到Project-> Build Options-> LinkerSettings选项卡。
  • 单击“ 添加”按钮,转到SFML的bin文件夹,然后选择其中的所有文件。
  • 现在转到Search Directories选项卡并添加SFML的'include'文件夹。
  • 在同一选项卡中,单击子选项卡链接器设置并添加“bin”文件夹。

基本的SFML程序

如果所有内容都已正确设置,则以下代码段将显示一个标题为“SFML正常工作!”的窗口。带绿色圆圈:

#include <SFML/Graphics.hpp>

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

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

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

    return 0;
}
 

SFML窗口中的Hello World

让我们编写一个小程序,它将打开一个窗口,并在屏幕上写下“Hello World”。

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

int main() {
    sf::RenderWindow sfmlWin(sf::VideoMode(600, 360), "Hello World SFML Window");
    sf::Font font;
    //You need to pass the font file location
    if (!font.loadFromFile(/*
                           Put the filename that identify the font file you want to load*/"myfont.ttf")) {
        return -1;
    }
    sf::Text message("Hello, World !", font);

    while (sfmlWin.isOpen()) {

        sf::Event e;
        while (sfmlWin.pollEvent(e)) {

            switch (e.type) {
            case sf::Event::EventType::Closed:
                sfmlWin.close();
                break;
            }
        }

        sfmlWin.clear();
        sfmlWin.draw(message);
        sfmlWin.display();
    }
    return 0;
}
 

让我们解释一下我们在那里做了什么。

首先,我们创建了一个sf::Font 对象。我们需要此对象来存储我们将用于显示文本的字体数据。之后,我们调用了loadFromFile 方法,用于在内存中加载字体。我们应该注意到SFML不了解您的系统字体,因此您需要提供文件名,而不是字体名称

之后,我们创建了一个sf::Text 对象。我们将3参数构造函数称为:

  • 要显示的字符串
  • 对象将使用的字体
  • 像素中的字符大小,我们没有在这里传递,因此il将被设置为默认值:30

由于sf::Text 对象已准备就绪,我们只需要在主sfml循环中绘制它,方法是在我们之前创建的sfmlWin 渲染窗口对象上调用draw方法

Insallation - macOS

首先,您需要下载SFML SDK。然后,为了开始开发SFML应用程序,您必须安装以下项目:

头文件和库

SFML既可以作为dylib使用,也可以作为框架使用。虽然两者都可以同时安装在同一系统上,但只需要一种二进制类型。我们建议使用框架。

构架

  • 将Frameworks的内容复制到/ Library / Frameworks。

dylib

  • 将lib的内容复制到/ usr / local / lib并将include的内容复制到/ usr / local / include。

SFML依赖项

SFML依赖于Mac OS X上的一些外部库。将extlib的内容复制到/ Library / Frameworks。

Xcode模板

如果您使用Xcode,强烈建议您安装模板。将SFML目录从模板复制到/ Library / Developer / Xcode / Templates(如果文件夹尚不存在,则创建它们)。

安装 - Linux

在Linux上安装SFML有不同的方法:

  1. 直接从您的发行版的软件包存储库安装它
  2. 获取源代码,构建并安装它
  3. 下载预编译的SDK并手动复制文件

选项1是首选;如果您要安装的SFML版本在官方存储库中可用,则使用您的包管理器安装它。例如,在Debian上你会这样做:

sudo apt-get install libsfml-dev
 

选项2需要更多工作:您需要确保所有SFML的依赖项(包括其开发头)都可用,确保安装了CMake,并手动执行某些命令。这将产生一个适合您系统的包。如果你想这样,有一个关于自己构建SFML专门教程

最后,如果SFML不作为官方软件包提供,则选项3是快速安装的不错选择。从下载页面下载SDK,将其解压缩并将文件复制到您的首选位置:个人文件夹中的单独路径(如/ home / me / sfml)或标准路径(如/ usr / local)。

如果您已经安装了旧版本的SFML,请确保它不会与新版本冲突!

安装 - Windows

在Windows上安装SFML的最常用方法是下载官方SDK

然后,您可以解压缩存档并在您选择的环境中使用它。

vcpkg

虽然它仍处于开发阶段,但如果你使用Visual Studio 2017或更新版本,你也可以通过vcpkg安装SFML,它与visual studio集成,大大简化了安装过程:

vcpkg install sfml