SFML

Материал из Википедии — свободной энциклопедии
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 16 марта 2022 года; проверки требуют13 правок.
Перейти к навигацииПерейти к поиску
Simple and Fast Multimedia Library
Логотип программы Simple and Fast Multimedia Library
ТипAPI
РазработчикЛоран Крауд
Написана наC++
Операционная системаКроссплатформенность
Последняя версия
Репозиторий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.[3] Представляет собой объектно-ориентированный аналогSDL.[4]

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

Содержание

Модули

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

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

  • 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);// Ограничить частоту кадров в секунду до 60window.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);// Ограничить частоту кадров в секунду до 60sfRenderWindow_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 на других языках программирования[3]

[править |править код]
НазваниеЯзыкПоддерживаемая версия
CSFMLАрхивная копия от 16 сентября 2015 наWayback Machine1C2.5
SFML.NetАрхивная копия от 28 августа 2015 наWayback Machine1C#2.5
JSFMLАрхивная копия от 12 июня 2021 наWayback MachineJava2.2
DerelictSFML2Архивная копия от 11 июня 2018 наWayback MachineD2.4
DSFMLАрхивная копия от 2 ноября 2015 наWayback MachineD2.1
csfml-fpcАрхивная копия от 1 апреля 2019 наWayback MachineFree Pascal2.5
pySFMLPython2.3.2
rbSFMLАрхивная копия от 25 апреля 2015 наWayback MachineRuby2.3.2
mruby-sfmlАрхивная копия от 1 апреля 2019 наWayback Machinemruby2.4
GoSFML2Архивная копия от 4 августа 2015 наWayback MachineGo2.2
go-sfmlАрхивная копия от 1 апреля 2019 наWayback MachineGo2.4
rust-sfmlАрхивная копия от 4 августа 2015 наWayback MachineRust2.4
OcsfmlАрхивная копия от 2 января 2015 наWayback MachineOCaml2.2
ocaml-sfmlАрхивная копия от 13 июля 2015 наWayback MachineOCaml2.0
EuSFML2Euphoria2.4
nim-csfmlАрхивная копия от 11 августа 2015 наWayback MachineNim2.3
SFML.jlАрхивная копия от 16 августа 2015 наWayback MachineJulia2.2
SFMLАрхивная копия от 5 сентября 2015 наWayback MachineHaskell2.3.2
PasSfmlАрхивная копия от 11 июня 2018 наWayback MachinePascal2.4
crsfmlАрхивная копия от 11 августа 2015 наWayback MachineCrystalАрхивная копия от 25 июля 2013 наWayback Machine2.5

См. также

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

Примечания

[править |править код]
  1. Release 3.0.2 — 2025.
  2. SFML 2.5.1 released . Дата обращения: 5 марта 2019. Архивировано 6 марта 2019 года.
  3. 12Bindings (SFML / Download) . www.sfml-dev.org. Дата обращения: 5 марта 2019. Архивировано 1 апреля 2019 года.
  4. Frequently Asked Questions (SFML / Learn) . www.sfml-dev.org. Дата обращения: 5 марта 2019. Архивировано 22 февраля 2019 года.
  5. 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)
Источник —https://ru.wikipedia.org/w/index.php?title=SFML&oldid=148316233
Категории:
Скрытые категории: