Русская Википедия:SFML
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Шаблон:Infobox software SFML (англ. Simple and Fast Multimedia Library — простая и быстрая мультимедийная библиотека) — свободная кроссплатформенная мультимедийная библиотека. Написана на C++, но доступна также для C, C#, .Net, D, Java, Python, Ruby, OCaml, Go и Rust.[1] Представляет собой объектно-ориентированный аналог SDL.[2]
SFML содержит ряд модулей для простого программирования игр и мультимедиа приложений. Исходный код библиотеки предоставляется под лицензией zlib/png license.[3]
Модули
В настоящее время доступны следующие модули:
- System — управление временем и потоками, он является обязательным, так как все модули зависят от него.
- Window — управление окнами и взаимодействием с пользователем.
- Graphics — делает простым отображение графических примитивов и изображений.
- Audio — предоставляет интерфейс для управления звуком.
- Network — для сетевых приложений.
Hello World
Следующий код на языке 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 на других языках программирования[1]
Название | Язык | Поддерживаемая версия |
---|---|---|
CSFML Шаблон:Wayback1 | C | 2.5 |
SFML.Net Шаблон:Wayback1 | .NET | 2.5 |
JSFML Шаблон:Wayback | Java | 2.2 |
DerelictSFML2 Шаблон:Wayback | D | 2.4 |
DSFML Шаблон:Wayback | D | 2.1 |
csfml-fpc Шаблон:Wayback | Free Pascal | 2.5 |
pySFML | Python | 2.3.2 |
rbSFML Шаблон:Wayback | Ruby | 2.3.2 |
mruby-sfml Шаблон:Wayback | mruby | 2.4 |
GoSFML2 Шаблон:Wayback | Go | 2.2 |
go-sfml Шаблон:Wayback | Go | 2.4 |
rust-sfml Шаблон:Wayback | Rust | 2.4 |
Ocsfml Шаблон:Wayback | OCaml | 2.2 |
ocaml-sfml Шаблон:Wayback | OCaml | 2.0 |
EuSFML2 | Euphoria | 2.4 |
nim-csfml Шаблон:Wayback | Nim | 2.3 |
SFML.jl Шаблон:Wayback | Julia | 2.2 |
SFML Шаблон:Wayback | Haskell | 2.3.2 |
PasSfml Шаблон:Wayback | Pascal | 2.4 |
crsfml Шаблон:Wayback | Crystal Шаблон:Wayback | 2.5 |
См. также
Примечания
Литература
Ссылки
- Официальный сайт Шаблон:Wayback
- Видео по созданию платформера Super Mario на SFML Шаблон:Wayback
- Library Review: SFML Шаблон:Wayback
- Русскоязычный форум SFML Шаблон:Wayback
Категории:
- Страницы, использующие устаревший тег source
- Русская Википедия
- Свободные библиотеки программ
- Кроссплатформенное программное обеспечение
- Графические библиотеки
- Свободные игровые движки
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Википедия
- Статья из Википедии
- Статья из Русской Википедии