AEW Dynamite
- 1 year ago
- 0
- 0
SFML ( англ. Simple and Fast Multimedia Library — простая и быстрая мультимедийная библиотека) — свободная кроссплатформенная мультимедийная библиотека . Написана на C++ , но доступна также для C , C# , .Net , D , Java , Python , Ruby , OCaml , Go и Rust . Представляет собой объектно-ориентированный аналог SDL .
SFML содержит ряд модулей для простого программирования игр и мультимедиа приложений. Исходный код библиотеки предоставляется под лицензией zlib/png license .
В настоящее время доступны следующие модули:
Следующий код на языке 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;
}
Название | Язык | Поддерживаемая версия |
---|---|---|
от 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 |
Для улучшения этой статьи
желательно
:
|