sfml учебник
Начало работы с sfml
Поиск…
замечания
SFML - мультимедийный
SFML обеспечивает простой интерфейс для различных компонентов вашего ПК, чтобы облегчить разработку игр и мультимедийных приложений. Он состоит из пяти модулей: системы, окна, графики, аудио и сети.
Узнайте больше об их функциях в учебниках и документации по API .
SFML является многоплатформенным
С помощью SFML ваше приложение может компилироваться и запускаться из коробки в наиболее распространенных операционных системах: Windows, Linux, Mac OS X и вскоре Android и iOS.
Предварительно скомпилированные SDK для вашей любимой ОС доступны на странице загрузки .
SFML - многоязычный
SFML имеет официальные привязки для языков C и .Net. Благодаря активному сообществу, он также доступен на многих других языках, таких как Java, Ruby, Python, Go и многое другое.
Узнайте больше о них на странице привязок .
Версии
Версия | Дата выхода |
---|---|
1,0 | 2007-07-01 |
1,1 | 2007-09-18 |
1.2 | 2008-07-16 |
1,3 | 2008-06-22 |
1.4 | 2009-01-07 |
1,5 | 2009-06-04 |
1,6 | 2010-04-06 |
2,0 | 2013-04-29 |
2,1 | 2013-07-27 |
2,2 | 2014-12-17 |
2,3 | 2015-05-09 |
2.3.1 | 2015-07-11 |
2.3.2 | 2015-10-12 |
2.4.0 | 2016-08-10 |
2.4.1 | 2016-11-04 |
2.4.2 | 2017-02-08 |
Установка или настройка
- Сначала загрузите копию SFML с официальной страницы .
- Сохраните его в любом месте на вашем компьютере, где его можно легко получить.
- Открыть кодовые блоки.
- Перейдите на вкладку Project-> Build Options-> LinkerSettings.
- Нажмите кнопку « Добавить» и перейдите в папку bin SFML и выберите все имеющиеся там файлы.
- Перейдите на вкладку «Поисковые каталоги» и добавьте папку «include» в SFML.
- На той же вкладке щелкните вкладку «Настройки компоновщика» и добавьте папку «bin».
Основная программа SFML
Если все, что было настроено правильно, следующий фрагмент отобразит окно под названием «SFML works!». с зеленым кругом:
#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;
}
Установка - Linux
Существуют различные подходы к установке SFML в Linux:
- Установите его прямо из репозитория пакетов дистрибутива
- Получить исходный код, построить его и установить его
- Загрузите предварительно скомпилированный SDK и скопируйте файлы вручную
Вариант 1 является предпочтительным; если версия SFML, которую вы хотите установить, доступна в официальном репозитории, а затем установите ее с помощью диспетчера пакетов. Например, в Debian вы бы сделали:
sudo apt-get install libsfml-dev
Вариант 2 требует больше работы: вам нужно обеспечить все зависимости SFML, включая их заголовки разработки, убедиться, что CMake установлен и вручную выполнить некоторые команды. Это приведет к пакету, который будет адаптирован к вашей системе. Если вы хотите идти этим путем, есть специальный учебник по созданию SFML .
Наконец, вариант 3 является хорошим выбором для быстрой установки, если SFML недоступен в качестве официального пакета. Загрузите SDK со страницы загрузки, распакуйте его и скопируйте файлы в предпочтительное место: либо отдельный путь в вашей личной папке (например, / home / me / sfml), либо стандартный путь (например, / usr / local).
Если у вас уже установлена более старая версия SFML, убедитесь, что она не будет конфликтовать с новой версией!
Установка - Windows
Самый распространенный способ установки SFML в Windows - загрузить официальный SDK
Затем вы можете распаковать архив и использовать его в выбранной вами среде.
vcpkg
Хотя он все еще сильно развит , если вы используете Visual studio 2017 или новее, вы также можете установить SFML через vcpkg, который интегрируется с визуальной студией, что значительно упрощает процесс установки:
vcpkg install sfml
Отказ - macOS
Прежде всего вам нужно загрузить SDML SDK. Затем, чтобы начать разработку приложений SFML, вам необходимо установить следующие элементы:
Заголовочные файлы и библиотеки
SFML доступен как в виде dylib, так и в качестве фреймворков. Требуется только один тип двоичных файлов, хотя оба могут быть установлены одновременно в одной и той же системе. Мы рекомендуем использовать фреймворки.
Каркасы
- Скопируйте содержимое Frameworks в / Library / Frameworks.
dylib
- Скопируйте содержимое lib в / usr / local / lib и скопируйте содержимое include в / usr / local / include.
Зависимости SFML
SFML зависит от нескольких внешних библиотек в Mac OS X. Скопируйте содержимое extlib в / Library / Frameworks.
Шаблоны Xcode
Если вы используете Xcode, настоятельно рекомендуется установить шаблоны. Скопируйте каталог SFML из шаблонов в / Library / Developer / Xcode / Templates (создайте папки, если они еще не существуют).
Hello World в окне SFML
Давайте напишем небольшую программу, которая откроет окно и напишет «Hello World» на экране.
#include <SFML\Graphics.hpp>
#include <cassert>
int main() {
sf::RenderWindow sfmlWin(sf::VideoMode(600, 360), "Hello World SFML Window");
sf::Font font;
//You need to pass the font file location
if (!font.loadFromFile(/*
Put the filename that identify the font file you want to load*/"myfont.ttf")) {
return -1;
}
sf::Text message("Hello, World !", font);
while (sfmlWin.isOpen()) {
sf::Event e;
while (sfmlWin.pollEvent(e)) {
switch (e.type) {
case sf::Event::EventType::Closed:
sfmlWin.close();
break;
}
}
sfmlWin.clear();
sfmlWin.draw(message);
sfmlWin.display();
}
return 0;
}
Давайте объясним, что мы там делали.
Сначала мы создали объект sf::Font
. Нам нужен этот объект для хранения данных шрифта, которые мы будем использовать для отображения текста. После этого мы вызываем метод loadFromFile
, используемый для загрузки шрифта в память. Следует отметить, что SFML не знает о ваших системных шрифтах, поэтому вам необходимо указать имя файла, а не имя шрифта
После этого мы создали объект sf::Text
. Мы называем конструктор трех параметров:
- Строка, которую вы хотите отобразить
- Шрифт, который будет использовать объект
- Размер символа в пикселе, который мы здесь не проходили, поэтому il будет установлен на значение по умолчанию: 30
Поскольку объект sf::Text
готов, нам просто нужно нарисовать его в основном цикле sfml, вызвав метод draw в sfmlWin
окна рендеринга sfmlWin
который мы создали до