SFML

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск
SFML
Полн. названиеSimple and Fast Multimedia Library
ТипAPI
РазработчикLaurent Gomila
ОСCross-platform
ЯПC++
Лицензияzlib License
Вебсайтwww.sfml-dev.org

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

Лицензия

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

Модули

SFML содержит ряд модулей для простого программирования игр и мультимедиа приложений.

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

  • System — управление временем и потоками, он явл. обязательным, т.к. все модули зависят от него.
  • Window — управление окнами и взаимодействием с пользователем.
  • Graphics — делает простым отображение графических примитивов и изображений.
  • 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 на др. ЯП

Название Язык Поддерживаемая версия
CSFML1 C 2.4
SFML.Net1 .NET 2.2
JSFML Java 2.2
DerelictSFML2 D 2.3
DSFML D 2.1
pySFML Python 2.3.2
rbSFML Ruby 2.3.2
GoSFML2 Go 2.2
rust-sfml Rust 2.4
Ocsfml OCaml 2.2
ocaml-sfml OCaml 2.0
EuSFML2 Euphoria 2.3.2
nim-csfml Nim 2.3
SFML.jl Julia 2.2
SFML Haskell 2.3.2
PasSfml Pascal 2.4
crsfml Crystal 2.4.1

История версий

  • 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 (17 Декабрь 2014)
    • 2.3 (9 Май 2015)
      • 2.3.1 (11 Июль 2015)
      • 2.3.2 (25 Декабрь 2015)
    • 2.4 (7 Августа 2016)
    • 2.4.1 (4 Ноября 2016)
    • 2.4.2 (8 Февраля 2017)
    • 2.5.0 (9 Мая 2018)

Подключение SFML в Visual Studio

Подключение SFML к проекту в Visual Studio 2010:

  • C/C++ — общие — доп. каталоги включаемых файлов — путь до "include";
  • C/C++ — Препроцессор — Определения препроцессора — SFML_DYNAMIC;
  • Компоновщик — общие. Компоновщик — ввод — доп. каталоги библиотек — путь до "lib".

См. также

По теме «SFML» см. также сдед.:

Ссылки