SFML C++
Введение | |
Скачивание библиотеки SFML2 | |
Создание проекта в Visual Studio | |
C/C++ General - include | |
Linker General - lib | |
Linker Input | |
SFML2.dll | |
Другие статьи о С++ |
Введение
SFML (англ. Simple and Fast Multimedia Library — простая и быстрая мультимедийная
библиотека) — свободная кроссплатформенная мультимедийная библиотека.
Написана на
C++
, но доступна также для
C
,
C#, .Net
, D,
Java
,
Python
,
Ruby
,
OCaml,
Go
и Rust. Представляет собой объектно-ориентированный аналог
SDL
.
SFML содержит ряд модулей для простого программирования игр и мультимедиа приложений.
Исходный код библиотеки предоставляется под лицензией zlib/png license.
В настоящее время доступны следующие модули:
- System — управление временем и потоками, он является обязательным, так как все модули зависят от него.
- Window — управление окнами и взаимодействием с пользователем.
- Graphics — делает простым отображение графических примитивов и изображений.
- Audio — предоставляет интерфейс для управления звуком.
- Network — для сетевых приложений.
Загрузка библиотеки
Скачать SFML2 можно на сайте sfml-dev.org
Затем архив нужно распаковать, например, создав директорию
C:\Development\SFML2
Создание проекта
После этого в Visual Studio создайте пустой C++ проект. Консольное приложение для win32, например. И в этом проекте создайте файл main.cpp
Обычно проекты храняться в директории
C:\Users\Username\source\repos
Например, мой проект с тетрисом лежит в
C:\Users\Andrei\source\repos\TetrisSFML
В Visual Studio можно открыть расположение файлов проекта нажав на его называние правой кнопкой мыши и выбрав
Open Folder in File Explorer
Затем нужно перейти в настройки проекта и подключить некоторые директории из SFML2 к проекту.
C/C++ General
В
C/C++ → General → Additional Include Directories
Нужно добавить путь до директории include
C:\Development\SFML2\include
Linker General
В
Linker → General → Additional Library Directories
Нужно добавить путь до директории lib
C:\Development\SFML2\lib
Linker Input
В
Linker → Input → Additional Dependencies
Нужно добавить следующие библиотеки
sfml-audio-d.lib sfml-graphics-d.lib sfml-network-d.lib sfml-system-d.lib sfml-window-d.lib
Из директории
C:\Development\SFML2\bin
Нужно скопировать следующие .dll в директорию проекта (чтобы лежали рядом с main.cpp)
- sfml-graphics-d-2.dll
- sfml-system-d-2.dll
- sfml-system-d-2.dll
Рисуем круг
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200,200), "SFML works!");
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Green);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}