Interested Article - SFML

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

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

Модули

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

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

Пример кода

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

#include <SFML/Graphics.hpp>

int main()
{
	// Создать окно
	sf::RenderWindow window(sf::VideoMode(1024, 768), "Hello, World!", sf::Style::Close);

	// Ограничить частоту кадров в секунду до 60
	window.setFramerateLimit(60);

	// Основной цикл
	while (window.isOpen())
	{
		// События
		sf::Event event;

		// Обработка событий (нажатие кнопок, закрытие окна и т.д.)
		while (window.pollEvent(event))
		{
			// Закрыть окно если нажата кнопка "Закрыть"
			if (event.type == sf::Event::Closed)
				window.close();
		}

		// Очистить окно и залить его черным цветом
		window.clear(sf::Color::Black);

		// Отобразить
		window.display();

	}

	return 0;
}

Аналогичный пример кода на Си:

#include <SFML/Graphics.h>

int main()
{
	// Режим окна (ширина, высота, глубина цвета) 
	sfVideoMode mode = {1024, 768, 32};

	// Создать окно
	sfRenderWindow *window = sfRenderWindow_create(mode, "Hello, World!", sfClose, NULL);

	// Ограничить частоту кадров в секунду до 60
	sfRenderWindow_setFramerateLimit(window, 60);

	// Основной цикл
	while (sfRenderWindow_isOpen(window))
	{
		// События
		sfEvent event;

		// Обработка событий (нажатие кнопок, закрытие окна и т.д.)
		while (sfRenderWindow_pollEvent(window, &event))
		{
			// Закрыть окно если нажата кнопка "Закрыть"
			if (event.type == sfEvtClosed)
				sfRenderWindow_close(window);
		}

		// Очистить окно и залить его черным цветом
		sfRenderWindow_clear(window, sfBlack);

		// Отобразить
		sfRenderWindow_display(window);
	}

	// Уничтожить окно
	sfRenderWindow_destroy(window);

	return 0;
}

SFML на других языках программирования

Название Язык Поддерживаемая версия
от 16 сентября 2015 на Wayback Machine 1 C 2.5
от 28 августа 2015 на Wayback Machine 1 .NET 2.5
от 12 июня 2021 на Wayback Machine Java 2.2
от 11 июня 2018 на Wayback Machine D 2.4
от 2 ноября 2015 на Wayback Machine D 2.1
от 1 апреля 2019 на Wayback Machine Free Pascal 2.5
Python 2.3.2
от 25 апреля 2015 на Wayback Machine Ruby 2.3.2
от 1 апреля 2019 на Wayback Machine 2.4
от 4 августа 2015 на Wayback Machine Go 2.2
от 1 апреля 2019 на Wayback Machine Go 2.4
от 4 августа 2015 на Wayback Machine Rust 2.4
от 2 января 2015 на Wayback Machine OCaml 2.2
от 13 июля 2015 на Wayback Machine OCaml 2.0
Euphoria 2.4
от 11 августа 2015 на Wayback Machine Nim 2.3
от 16 августа 2015 на Wayback Machine Julia 2.2
от 5 сентября 2015 на Wayback Machine Haskell 2.3.2
от 11 июня 2018 на Wayback Machine Pascal 2.4
от 11 августа 2015 на Wayback Machine от 25 июля 2013 на Wayback Machine 2.5

См. также

Примечания

  1. — 2023.
  2. . Дата обращения: 5 марта 2019. 6 марта 2019 года.
  3. . www.sfml-dev.org. Дата обращения: 5 марта 2019. 1 апреля 2019 года.
  4. . www.sfml-dev.org. Дата обращения: 5 марта 2019. 22 февраля 2019 года.
  5. . www.sfml-dev.org. Дата обращения: 5 марта 2019. 6 марта 2019 года.

Литература

  • 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 .
  • Milcho G. Milchev. SFML Essentials. — Packt Publishing, 2015. — 132 с. — ISBN 978-1-78439-732-6 .
  • Maxime Barbier. SFML Blueprints. — Packt Publishing, 2015. — 298 с. — ISBN 978-1-78439-577-3 .

Ссылки

Источник —

Same as SFML