SFML
SFML (англ. Simple and Fast Multimedia Library — простая и быстрая мультимедийная библиотека) — свободная кроссплатформенная мультимедийная библиотека. Написана на C++, но доступна также для C, C#, .Net, D, Java, Python, Ruby, OCaml, Go и Rust.[1] Представляет собой объектно-ориентированный аналог SDL.[2]
Simple and Fast Multimedia Library | |
---|---|
Тип | API |
Разработчик | Laurent Gomila |
Написана на | C++ |
Операционная система | Cross-platform |
Последняя версия | 2.5.1 |
Лицензия | zlib License |
Сайт | sfml-dev.org |
SFML содержит ряд модулей для простого программирования игр и мультимедиа приложений. Исходный код библиотеки предоставляется под лицензией zlib/png license.[3]
Модули
В настоящее время доступны следующие модули:
- 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;
}
Пример кода на Си (отображение окно и заливание его белым цветом):
#include <SFML/Graphics.hpp>
int main()
{
sfVideoMode mode = {480, 320, 32};
sfRenderWindow* window;
sfEvent event;
window = sfRenderWindow_create(mode, "Hello, World!", sfResize | sfClose, NULL);
while (sfRenderWindow_isOpen(window))
{
while (sfRenderWindow_pollEvent(window, &event))
{
if (event.type == sfEvtClosed)
sfRenderWindow_close(window);
}
sfRenderWindow_clear(window, sfWhite);
sfRenderWindow_display(window);
}
sfRenderWindow_destroy(window);
return 0;
}
SFML на других языках программирования[1]
Название | Язык | Поддерживаемая версия |
---|---|---|
CSFML1 | C | 2.5 |
SFML.Net1 | .NET | 2.5 |
JSFML | Java | 2.2 |
DerelictSFML2 | D | 2.4 |
DSFML | D | 2.1 |
csfml-fpc | Free Pascal | 2.5 |
pySFML | Python | 2.3.2 |
rbSFML Архивная копия от 25 апреля 2015 на Wayback Machine | Ruby | 2.3.2 |
mruby-sfml | mruby | 2.4 |
GoSFML2 | Go | 2.2 |
go-sfml | Go | 2.4 |
rust-sfml | Rust | 2.4 |
Ocsfml | OCaml | 2.2 |
ocaml-sfml | OCaml | 2.0 |
EuSFML2 | Euphoria | 2.4 |
nim-csfml | Nim | 2.3 |
SFML.jl | Julia | 2.2 |
SFML | Haskell | 2.3.2 |
PasSfml | Pascal | 2.4 |
crsfml | Crystal | 2.5 |
Примечания
- Bindings (SFML / Download) . www.sfml-dev.org. Дата обращения: 5 марта 2019.
- Frequently Asked Questions (SFML / Learn) . www.sfml-dev.org. Дата обращения: 5 марта 2019.
- License (SFML / Learn) . www.sfml-dev.org. Дата обращения: 5 марта 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.
Ссылки
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.