Новые простые проекты

Devlog 2023 г. C# + SFML

Давно я сюда ничего не писал, прошел уже почти месяц.

Но всё это время я не сидел без дела. У меня продолжаются модули по обучению C# и я, в рамках данных модулей, продолжаю клепать простенькие проектики, на которых набиваю руку.

Рука прям начинает набиваться хорошо. Чем больше пишу на шарпе, тем лучше начинаю его понимать и многие вещи, которые раньше казались очень сложными – становятся попроще.

Начал читать про паттерны разработки (ту самую книжку от банды четырех). У меня две книги по паттернам, обе лежат пылятся в стопке остальных книг. Неизвестно сколько бы они еще пролежали, если бы я не начал заниматься, т.к. читать их просто так было не совсем интересно, а применительно к проектам я вдруг начал понимать некоторые концепции, которые раньше были не вполне понятны.

Итак, по порядку.

Первый проект, который я реализовал, была обычная консольная змейка. Не сказать, что мне прям понравилось ее делать, т.к. игры в консоли – это прошлый век и вообще не особо интересно. Но для набивания руки и работой с координатами – неплохо. Получился вот такой проект:

Консольная змейка

Далее, я реализовал опять змейку, но уже используя библиотеку SFML (это простенькая, но очень помогающая в работе с мультимедиа, билиотека. Изначально была сделана под C++, но есть версия под C#)

Проект, сделанный на данной библиотеке уже выглядит гораздо приятнее, плюс анимация стала плавной и не такой дерганой, как в консольном приложении.

Змейка, реализованная с использованием SFML-библиотеки

Следующий проект, который я сделал – это простенький платформер, где игрок отыгрывает за кошку (или кота, кому как удобнее), которая находится внутри блока из стен. Сверху постоянно генерятся враги – пылесос и собака, плюс еда. Задачей является уворачиваться от врагов и собирать еду.

Игра по сути – бесконечная, не сказать, чтобы прям разнообразная, по сути весь процесс – это собирать еду и уворачиваться от врагов. Но игра получилось интересная и атмосферная. Да и к тому же, это ведь учебный проект, а не AAA-игра.

На данном проекте мне удалось набить руку по работе с SFML-библиотекой (я использовал урезанную учебную версию), плюс реализовать анимацию. Причем до этой реализации я дошел, по сути, сам. И только потом, посмотрев различные гайды в интернете, понял, что сделал всё правильно.

Также я разобрался с паттерном «Фабрика», глубже стал понимать концепции ООП и как устроены игровые циклы.

В игре я реализовал стартовое окно с обучением:

Сама игра выглядит так:

При проигрыше появляется окно с отображением рекорда.

Посмотреть процесс игры можно в следующем ролике:

Следующая игра – была логической, я давно уже с такой встречался. Игра, в которой нужно выбирать цвет написанного слова.

Стартовое окно выглядит так:

Сам процесс игры вот такой:

В игре я сделал таймер на 30 секунд. Каждые десять секунд добавляются новые цвета и новые слова. К концу отсчета игроку уже приходится выбирать между 10-различными цветами. Реализовывал всё также с использованием SFML библиотеки.

Ну и наконец, еще одна логическая игра: Найди пару.

Суть игры тоже не новая – в начале уровня игроку открывается несколько различных пар объектов, затем данные объекты все закрываются и нужно по памяти выбирать последовательно пары объектов.

Выглядит это всё так:

Сперва необходимо выбрать уровень сложности. В зависимости от выбора будет различное количество пар.

Сперва открываются все объекты

Затем все объекты закрываются

При выборе пары, обе карты исчезают с экрана.

В игре реализован таймер, плюс подсчет количества очков. Если игрок выбрал верные пары объектов, то ему прибавляется два очка. В случае ошибки с выбором, два очка наоборот отнимаются. Задачей является за отмеренное время найти все пары объектов.

Вот столько всего я сделал за месяц, но это еще не все. В следующей статье я опишу проект, который меня зацепил самого и я его реализовывал с удовольствием и креативом. Это был Arcanoid, с использованием SFML.

Понравилась статья? Поделиться с друзьями:
Kostegs.Name
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: