VOOZH about

URL: https://ru.wikipedia.org/wiki/SFML

⇱ SFML — Википедия


Перейти к содержанию
Материал из Википедии — свободной энциклопедии
Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 16 марта 2022 года; проверки требуют 14 правок.
Simple and Fast Multimedia Library
👁 Логотип программы Simple and Fast Multimedia Library
Тип API
Разработчик Лоран Крауд
Написана на C++
Операционная система Кроссплатформенность
Последняя версия (18 октября 2018 года[1])
Репозиторий github.com/SFML/SFML
Лицензия zlib License
Сайт sfml-dev.org

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

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

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

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

Пример кода

[править | править код]

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

#include<SFML/Graphics.hpp>

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

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

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

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

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

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

}

return0;
}

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

#include<SFML/Graphics.h>

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

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

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

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

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

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

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

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

return0;
}

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

[править | править код]
Название Язык Поддерживаемая версия
CSFML Архивная копия от 16 сентября 2015 на Wayback Machine1 C 2.5
SFML.Net Архивная копия от 28 августа 2015 на Wayback Machine1 C# 2.5
JSFML Архивная копия от 12 июня 2021 на Wayback Machine Java 2.2
DerelictSFML2 Архивная копия от 11 июня 2018 на Wayback Machine D 2.4
DSFML Архивная копия от 2 ноября 2015 на Wayback Machine D 2.1
csfml-fpc Архивная копия от 1 апреля 2019 на Wayback Machine Free Pascal 2.5
pySFML Python 2.3.2
rbSFML Архивная копия от 25 апреля 2015 на Wayback Machine Ruby 2.3.2
mruby-sfml Архивная копия от 1 апреля 2019 на Wayback Machine mruby 2.4
GoSFML2 Архивная копия от 4 августа 2015 на Wayback Machine Go 2.2
go-sfml Архивная копия от 1 апреля 2019 на Wayback Machine Go 2.4
rust-sfml Архивная копия от 4 августа 2015 на Wayback Machine Rust 2.4
Ocsfml Архивная копия от 2 января 2015 на Wayback Machine OCaml 2.2
ocaml-sfml Архивная копия от 13 июля 2015 на Wayback Machine OCaml 2.0
EuSFML2 Euphoria 2.4
nim-csfml Архивная копия от 11 августа 2015 на Wayback Machine Nim 2.3
SFML.jl Архивная копия от 16 августа 2015 на Wayback Machine Julia 2.2
SFML Архивная копия от 5 сентября 2015 на Wayback Machine Haskell 2.3.2
PasSfml Архивная копия от 11 июня 2018 на Wayback Machine Pascal 2.4
crsfml Архивная копия от 11 августа 2015 на Wayback Machine Crystal Архивная копия от 25 июля 2013 на Wayback Machine 2.5

Примечания

[править | править код]
  1. SFML 2.5.1 released. Дата обращения: 5 марта 2019. Архивировано 6 марта 2019 года.
  2. 1 2 Bindings (SFML / Download). www.sfml-dev.org. Дата обращения: 5 марта 2019. Архивировано 1 апреля 2019 года.
  3. Frequently Asked Questions (SFML / Learn). www.sfml-dev.org. Дата обращения: 5 марта 2019. Архивировано 22 февраля 2019 года.
  4. License (SFML / Learn). 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.
intmain()
{
printf("Hi");
return0;
}
Это заготовка статьи о программировании. Помогите Википедии, дополнив её.
В статье есть список источников, но не хватает сносок.
Без сносок сложно определить, из какого источника взято каждое отдельное утверждение. Вы можете улучшить статью, проставив сноски на источники, подтверждающие информацию. Сведения без сносок могут быть удалены. (21 декабря 2013)