SFML

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Simple and Fast Multimedia Library
SFML2.svg
Логотип SFML
Тип

API

Разработчик

Laurent Gomila

Написана на

C++

Операционная система

Cross-platform

Последняя версия

2.3

Лицензия

zlib License

Сайт

sfml-dev.org

SFML (англ. Simple and Fast Multimedia Library — простая и быстрая мультимедиа библиотека) — свободная кроссплатформенная мультимедиа библиотека. Написана на C++, но доступна также для C, D, Java, Python, Ruby, OCaml, .Net и Go. Представляет собой объектно-ориентированный аналог SDL.

SFML содержит ряд модулей для простого программирования игр и мультимедиа приложений. Исходный код библиотеки предоставляется под лицензией zlib/png license.

Модули[править | править вики-текст]

В настоящее время доступны следующие модули:

  • System — управление временем и потоками, он является обязательным, так как все модули зависят от него.
  • Window — управление окнами и взаимодействием с пользователем.
  • Graphics — делает простым отображение графических примитивов и изображений, для своей работы требует модуль Window.
  • Audio — предоставляет интерфейс для управления звуком.
  • Network — для сетевых приложений.

Hello World[править | править вики-текст]

Следующий код на языке C++ демонстрирует простейшее приложение на SFML (отображаем окно и заливаем его синим цветом):

//Подключаем заголовок модуля '''Graphics''', а он автоматически подключает заголовок модуля '''Window'''
# include <SFML/Graphics.hpp>

int main()
{
    // Создаём окно
    sf::RenderWindow App(sf::VideoMode(800, 600, 32), "Hello World - SFML");

    // Основной цикл
    while (App.isOpen())
    {
        // Проверяем события (нажатие кнопки, закрытие окна и т.д.)
        sf::Event Event;
        while (App.pollEvent(Event))
        {
            // если событие "закрытие окна":
            if (Event.type == sf::Event::Closed)
                 //закрываем окно 
                App.close();
        }

        // очищаем экран, и заливаем его синим цветом
        App.clear(sf::Color(0,0,255));

        // отображаем на экран
        App.display();
    }

    return 0;
}

Поддерживаемые языки[править | править вики-текст]

Число справа показывает версию библиотеки SFML:

  • C++ : 2.2
  • C : 2.1
  • .NET : 2.2
  • D : DerelictSFML2(2.1),DSFML(2.0)
  • Euphoria : 2.0
  • Go : 2.0
  • Java : 2.2
  • Nim : 2.1
  • OCaml : Ocsfml(2.2), ocaml-sfml(2.0)

История версий[править | править вики-текст]

  • 1.0 (Июль 2007)
    • 1.1 (18 Сентябрь 2007)
    • 1.2 (16 Январь 2008)
    • 1.3 (22 Июнь 2008)
    • 1.4 (7 Январь 2009)
    • 1.5 (4 Июнь 2009)
    • 1.6 (6 Апрель 2010)
  • 2.0 (29 Апрель 2013)
    • 2.1 (27 Июль 2013)
    • 2.2 (14 Декабрь 2014)

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

  • Artur Moreira, Jan Haller, Henrik Vogelius Hansson. SFML Game Development. — Packt Publishing, 2013. — 296 p. — ISBN 978-1-84969-684-5.
  • David Gouveia. 2. Audio Playback, Project 1 – building a simple audio manager // Getting Started with C++ Audio Programming for Game Development. — Packt Publishing, 2013. — 116 p. — ISBN 978-1-84969-909-9.

Ссылки[править | править вики-текст]