SFML. Основы

Содержание

Слайд 2

SFML SFML является кроссплатформенной, библиотекой для создания мультимедийных приложений. Она состоит

SFML

SFML является кроссплатформенной, библиотекой для создания мультимедийных приложений.
Она состоит из

пяти модулей: system, window, graphics, audio и network
SFML является объектно-ориентированной надстройкой над OpenGL
Мы затронем только графический модуль SFML.
Слайд 3

Установка на VS.

Установка на VS.

Слайд 4

Установка на VS.

Установка на VS.

Слайд 5

Установка на VS.

Установка на VS.

Слайд 6

Установка на VS.

Установка на VS.

Слайд 7

Установка на VS.

Установка на VS.

Слайд 8

Установка на VS.

Установка на VS.

Слайд 9

Создание окна. Создаем главное окно, размером 800х600. Заголовок окна = “MainWindow”

Создание окна.

Создаем главное окно, размером 800х600. Заголовок окна = “MainWindow”

Слайд 10

Создание главного цикла.

Создание главного цикла.

Слайд 11

Результат Получаем окно, которое нельзя закрыть. Чтобы закрыть окно, необходимо в

Результат

Получаем окно, которое нельзя закрыть.
Чтобы закрыть окно, необходимо в основной цикл

встроить обработчик оконных событий.
Слайд 12

Обработчик оконных событий. Если с окном что-то произошло – наступило событие,

Обработчик оконных событий.

Если с окном что-то произошло – наступило событие, то

это событие отловит метод pollEvent, которое принимает переменную event по ссылке и модифицирует её.
pollEvent – возвращает true, если с что-либо произошло.
Далее мы можем провести ряд проверок на тип того события, которое происходит с окном.
Обязательной проверкой является Event::Closed, чтобы мы могли завершить основной цикл и завершить работу программы.
Слайд 13

Результат

Результат

Слайд 14

Рисуем круг. Класс CircleShape является классом для рисования правильных выпуклых многоугольников.

Рисуем круг.

Класс CircleShape является классом для рисования правильных выпуклых многоугольников.
Этот класс

может использоваться не только для рисования кругов, но и правильных треугольников, квадратов…
Слайд 15

SFML Shapes SFML предоставляет набор классов, представляющих объекты простой формы. Каждый

SFML Shapes

SFML предоставляет набор классов, представляющих объекты простой формы. 
Каждый тип фигуры —

это отдельный класс, но все они происходят от одного и того же базового класса, поэтому у них есть доступ к одному и тому же подмножеству общих функций. 
Затем каждый класс добавляет свои особенности: свойство радиуса для класса окружности, размер для класса прямоугольника, точки для класса многоугольника и т. д.
Слайд 16

Правильные многоугольники Первый параметр у класса CircleShape – длина высоты, опущенной

Правильные многоугольники

Первый параметр у класса CircleShape – длина высоты, опущенной из

центра формы к любой из сторон.
Второй параметр – длина этой высоты.
Методом .move(x,y) перемещаем нашу форму относительно текущей позиции.
Конструктор класса Color может принимает три параметра – интенсивность RGB
Т.к. класс Shape является базовым для любой формы, можем добавить каждую форму в вектор из указателей типа базового.
Слайд 17

Правильные многоугольники

Правильные многоугольники

Слайд 18

Произвольные выпуклые многоугольники

Произвольные выпуклые многоугольники

Слайд 19

Прямоугольники

Прямоугольники

Слайд 20

Рисуем окружность

Рисуем окружность

Слайд 21

Иерархия классов SFML

Иерархия классов SFML

Слайд 22

SFML Vertex & VertexArray SFML предоставляет механизм более низкого уровня для

SFML Vertex & VertexArray

SFML предоставляет механизм более низкого уровня для рисования: массивы

вершин. На самом деле массивы вершин используются внутри всех остальных классов SFML.
Они позволяют более гибко определять 2D-объекты, содержащие столько треугольников, сколько вам нужно.
Они даже позволяют рисовать точки или линии.
Слайд 23

Типы основных примитивов

Типы основных примитивов

Слайд 24

Типы основных примитивов

Типы основных примитивов

Слайд 25

Отрисовка Треугольника

Отрисовка Треугольника

Слайд 26

Отрисовка Треугольника

Отрисовка Треугольника

Слайд 27

Делаем класс свой окружности. Имплементация drawable.

Делаем класс свой окружности. Имплементация drawable.

Слайд 28

Реализация метода draw. Target – То, где мы должны рисовать.

Реализация метода draw.

Target – То, где мы должны рисовать.

Слайд 29

Результат Нам удалось сделать «Прозрачную» фигуру

Результат

Нам удалось сделать «Прозрачную» фигуру

Слайд 30

Отрисовка линий. Способ 1.

Отрисовка линий. Способ 1.

Слайд 31

Отрисовка линий. Способ 2.

Отрисовка линий. Способ 2.

Слайд 32

Отрисовка текста. Файл со шрифтом должен находиться в папке проекта.

Отрисовка текста.

Файл со шрифтом должен находиться в папке проекта.

Слайд 33

Отрисовка текста поверх формы. Порядок. Важен порядок, в котором рисуются примитивы.

Отрисовка текста поверх формы. Порядок.

Важен порядок, в котором рисуются примитивы. Например,

чтобы нарисовать круг, внутри которого будет текст, необходимо, чтобы текст попадал в буфер отрисовки экрана после формы.
Таким образом, текст будет сверху формы.
Слайд 34

Отрисовка текста поверх формы. Пример.

Отрисовка текста поверх формы. Пример.

Слайд 35

Отрисовка текста поверх формы. Пример. В методе draw сначала в буфер

Отрисовка текста поверх формы. Пример.

В методе draw сначала в буфер окна

добавляем компонент circle, затем компонент text, чтобы text был над circle.
Слайд 36

Отрисовка текста поверх формы. Пример. В методе draw сначала в буфер

Отрисовка текста поверх формы. Пример.

В методе draw сначала в буфер окна

добавляем компонент circle, затем компонент text, чтобы text был над circle.