Создание графиков функций y=sin(x)

sin

Использование в main.cpp:

Буду благодарен, если поделитесь:

Персонаж “Машина”

В этом уроки разберёмся как сделать персонажа с управлением как в машине.

Итак начнём! (!!!Я использую using namespace sf !!!)

Как-же создать передвижение в ту сторону которую он направлен? Сначала передвижение под углом. Используем функцию move(), мы будем двигать спрайт по двум осям. Так для движения в 45(гр.) Установим X = 0.5 Y = 0.5 ;

Теперь как повернуть спрайт. Для этого используем функцию rotate(n). n – угол. Для того чтобы узнать угол getRotation()

Теперь само движение.

Что получилось:

 

Буду благодарен, если поделитесь:

Урок 2. Создаём игровую карту мира. Часть 1

Доброго времени суток!

Продолжаем делать пошаговую стратегию. В этом уроке мы добавим в нашу игру игровую карту, через которую будет игрок взаимодействовать с программой. Карты будет делиться на три класса: интерфейс, через который пользователь будет взаимодействовать с картой; камера или вид игрока, который будет направлен на определённый участок карты, и который будет рисоваться в интерфейсе; ну и собственно сама карта, в которой всё будет храниться. Первое, что мы реализуем – это интерфейс. Создаем новый файл TMapWidget.hpp и добавляем его к проекту. Наш интерфейс должен хранить координаты расположения в окне. Также добавим на время поле текстуры, чтобы загрузить её один раз во время создания объекта данного класса.
Читать далее Урок 2. Создаём игровую карту мира. Часть 1

Буду благодарен, если поделитесь:

Урок 1. Начало

Доброго времени суток!

Желаю опубликовать цикл уроков по созданию примитивной 4х пошаговой стратегии (TBS). В качестве примера будет использоваться Sid Meier’s Civilization (первая часть, конечно). Плоский вид сверху. Кому хочется изометрии, может переписать часть кода в части вывода изображения карты. Остальные принципы останутся неизменными. Данные уроки будут дублированы в wiki.

Итак, начнём с того, что проясним то, каким правилам я придерживаюсь, и что использую для создания игры. Всё это обозначено здесь. А исходить буду из того, что у вас уже имеются некоторые представления программирования на С/С++, и объяснять, что делает та или иная строчка кода мне дословно не потребуется. Использовать сильно сложные и заумные конструкции для реализации нашей цели я тоже не буду. Весь код будет прокомментирован, исходники можете посмотреть на сайте, указанном в уроке 0. Публиковать новый код буду по мере написания и публикации уроков на этом сайте. Я всю буду практиковать “религию” ООП.
Также, я буду считать, что у вас уже установлена IDE с компилятором, и поставлена туда SFML. Если же нет, то на данном сайте есть пара уроков, как установить SFML к IDE Dev-Cpp, и использовать её в своих проектах под данной средой разработки.

Ну что, поехали?
Открываем среду разработки и создаём новый пустой проект. Я буду использовать собственные названия и пути хранения проекта. Вы же вольны использовать свои. Называем проект: 4x_TBS_Lessons. Сам проект будет храниться в папке: 4x TBS Lessons, файл проекта среды Dev-Cpp я разместил по адресу:
4x TBS Lessons/dev/.
Перейдём к настройкам проекта. Выбираем закладку “Компоновка”. Вводим каталоги вывода объектных и исполняемых файлов.
Для исполняемых: ../bin/dbg/x64/
Для объектных: ../obj/dbg/x64/
Не забываем создать данные папки в корневом каталоге проекта (среда разработки и компилятор их сами не создадут). Ну и переопределяем имя выходного файла: 4x_TBS_Lessons.exe.

Далее. Переходим во вкладку “Параметры”, и в поле под словом “Linker:” вносим все необходимые ключи. Так как я буду использовать статическую линковку SFML к нашему проекту, то и внесу все требуемые для этого ключи. Перечислять их не буду, какие ключи нужны для статической линковки, а какие – для динамической, можно посмотреть здесь.
Во вкладке “Компилятор” выбираем компилятор: “TDM-GCC 4.9.2 64-bit Debug” и нажимаем ОК.

Создаем новый файл и добавляем его к проекту. Назовём его Main.hpp. Там будет храниться все заголовочные файлы SFML, которые мы будем подключать везде, где это нам понадобится:

Создаём ещё один файл и добавляем к проекту. Называем Main.cpp – здесь будет располагаться точка входа в программу (main-функция):

Так как мы исповедуем принципы ООП, то сразу создаем новый класс, которые будет выполнять функции приложения. Так и назовём – TApplication. Добавим туда три метода: инициализация, рабочий цикл и деинициализация.
Также ещё добавил поле Window – окно, где будет отображаться работа приложения.

Чтобы не раздувать статью, я удаляю комментарии из кода, публикуемом здесь. Но полный вариант находится на облаке.
Итак, инициализируем поле Window в методе Init. Также добавляем главный цикл программы в метод Run, и деинициализацию (разрушение) окна в End.

Теперь добавляем объект TApplication в main-функцию, и делаем вызовы все трёх методов данного класса.

Собираем программу и запускаем. Теперь у нас есть рабочий начальный вариант программы оформленный по всем канонам ООП.
На этом уроке всё. В следующем рассмотрим создание игровой карты, где и будет происходит всё действие игры.

Буду благодарен, если поделитесь:

Box2D

Вся информация о библиотеке Box2D

Буду благодарен, если поделитесь:

Инструкция по сборке и подключению физической библиотеки Box2D

Сборка библиотеки

Для начала зайдите в репозиторий Box2D  https://github.com/erincatto/Box2D и скачайте последнюю версию библиотеки.

Распаковав архив, вы увидите файлы с документацией и папки.

2

Зайдя в папку Box2D вы увидите такую картину.

1

Это файлы библиотеки. Для того чтобы воспользоваться ими необходимо собрать библиотеку.

Для этого зайдите на сайт https://premake.github.io и скачайте программу premake 5-ой версии. Распакуйте скачанный архив и переместите программу в каталог с файлами библиотеки.

Premake5 собирает библиотеку по инструкции из файла premake5.lua. По умолчанию сборка производится только для 64-х битных систем. Если вам нужна сборка для 32-х битной системы, то отредактируйте файл в блокноте следующим образом: в 6 строке architecture “x86_64″ сотрите _64. Вы получите architecture “x86″. Сохраните файл.

Откройте командную строку и переведите её с помощью команды cd в каталог с файлами библиотеки. Впишите в неё команду premake5 vs2017. Запись vs2017 зависит от версии вашей visual studio. Нажмите enter и дождитесь окончания сборки.

Теперь вы можете пройти в каталог с собранным проектом.

3

Запустите его.

В окне обозреватель решений назначьте проект Testbed автозагружаемым. Зайдите в его свойства. В категории “Отладка” установите рабочий каталог ..\..\Testbed. Теперь вы можете скомпилировать проект.

Подключение библиотеки

Для подключения библиотеки к вашему проекту подключите необходимые файлы как показано на картинках.

Дополнительные каталоги включаемых файлов. Подключите папку с файлами библиотеки.

4

Дополнительные каталоги библиотек. Подключите папку собранного проекта в соответствии с вашей конфигурацией. Debug – Debug. Release – Release.

5

Дополнительные зависимости. Впишите строку Box2D.lib.

6

На этом статья заканчивается. Надеюсь я все объяснил максимально понятно и информативно. Оставляйте свои вопросы в комментариях. Удачи в программировании!

Буду благодарен, если поделитесь:

Урок 0. Общие положения

Общие положения.

1. Среды разработки, компиляторы и библиотеки используемые в проекте.
-1.1. IDE Dev-Cpp 5.11
-1.2. TDM-GCC 4.9.2
-1.3. SFML 2.4.2

2. Поддерживаемые (целевые) платформы.
-2.1. MS Windows (x32/x64)

3. Размещение проекта на удалённом репозитории.
-3.1. https://sourceforge.net/projects/sfml-ru-lessons/

4. Стиль кода.
-4.1. Объекты классов и функции
–4.1.1. Наименования объектов классов и функций должны раскрывать предназначение их использования
–4.1.2. Каждое слово в наименовании начинается с заглавной буквы и продолжается малыми
–4.1.3. Разделение слов в наименовании какими-либо знаками исключается
–4.1.4. Разрешается использование цифр в наименовании
-4.2. Классы
–4.2.1. Наименования
—4.2.1.1. Наименования должны раскрывать предназначение их использования
—4.2.1.2. Наименования классов начинаются с заглавной латинской буквы T
—4.2.1.3. Каждое слово в наименовании начинается с заглавной буквы и продолжается малыми
—4.2.1.4. Разделение слов в наименовании какими-либо знаками исключается
—4.2.1.5. Разрешается использование цифр в наименовании
–4.2.2. Структура классов
—4.2.2.1. Перечисление списка членов класса делится на три части.
—-4.2.2.1.а. В первой части перечисляются классы- и методы-друзья и вложенные классы
—-4.2.2.1.б. Во второй части перечисляются поля класса
—-4.2.2.1.в. В третьей части перечисляются объявления методов класса
—4.2.2.2. Перечисление списка членов класса производится в заголовочных файлах .hpp
—4.2.2.3. Реализация методов класса производится в файлах исходного кода .cpp
—4.2.2.4. Перечисление списка членов и реализация методов шаблонных классов производится в заголовочных файлах .hpp
—4.2.3. Каждое объявление класса, функции или объекта класса начинается с краткого комментария, раскрывающего предназначения данного класса/функции/объекта класса

Буду благодарен, если поделитесь:

Подключение SFML к среде разработки DEV-CPP 5.11

Доброго времени суток!

Решил помочь создателю сайта с наполнением его контентом, то есть обучающим материалом. Так как на сайте уже разбиралось использование MS Visual Studio для сборки проектов, я разберу использование связки SFML 2.4.2 и среды разработки Dev-Cpp 5.11 с поставляемым к нему компилятором TDM-GCC 4.9.2.

Так как данная статья о «прикрутке» библиотеки SFML к Dev-Cpp описывать как достоинства и недостатки использования данной среды, так и все тонкость загрузки и установки среды смысла не имеет, так как приведёт к раздуванию статьи. Эта статья для тех, кто сделал выбор на этой связке.
Для начала качаем требуемый для нас готовый вариант библиотеки:Download32и/или:Download64В крайнем случае загружаем исходники и компилируем сами. Как это делать написано здесь. (англ.яз)

После того как загрузили, распаковываем архив в удобном для нас месте. Для себя сделал такой выбор:
<место размещения компилятора>/SFML/x32 , и
<место размещения компилятора>/SFML/x64
PlacementPlacement2– обе версии для разных архитектур. Если вам необходима только одна, то качаем нужную. Оставляем лишь папки: \bin, \include и \lib.
Переходим к финальной части: указываем среде разработки место расположение всех частей библиотеки. Запускаем IDE и переходим в верхнем меню: Сервис -> Параметры компилятора.
SettingsНажимаем на вкладку “Каталоги” и начинаем добавлять места расположений частей SFML, набивая полный путь сами, либо находя каталоги через кнопочку Folderсправа:binariesДелаем это для:
«Программы» – <место размещения библиотеки>\bin,
«Библиотеки» – <место размещения библиотеки>\lib,
«Включаемые файлы С++» – <место размещения библиотеки>\include,
– и повторяем для всех требуемых для вас наборов настроек компилятора:
CompilerVersions
Теперь SFML полностью готова для использования в ваших проектах. В следующей статье я расскажу нюансы использование библиотеки SFML в ваших проектах в среде разработки Dev-Cpp..

Буду благодарен, если поделитесь: