Проект Змейка с изменяемыми размерами карты

Слайд 2

ЗАДАЧИ

Для более простого процесса создания проекта я решил поделить его на задачи.
1.

ЗАДАЧИ Для более простого процесса создания проекта я решил поделить его на
Установить библиотеку SFML. 2. Создать окно размер которого я сам смогу выбирать. 3. Создать передвигающуюся змею. 4. Создать яблоко. 5. Сделать возможным рост змеи и поедание яблок. 6. Сделать проверку на выход змеи за барьеры и столкновение с самим собой. 7. Убрать некоторые недоработки.

Слайд 3

ЭТАПЫ 1 И 2

С первых этапом у меня и произошли первые проблемы.

ЭТАПЫ 1 И 2 С первых этапом у меня и произошли первые
Я не смог установить SFML библиотеку по классическим гайдам из интернета. С Этой проблемой мне помог Елисей показав как установить эту библиотеку через NuGet.

Со вторым этапом все
было просто и тут не
возникло проблем.

Слайд 4

ЭТАПЫ 3 И 4

Для начала я создал спрайт белого квадрата 10х10 пискелей

ЭТАПЫ 3 И 4 Для начала я создал спрайт белого квадрата 10х10
в паинте и закинул его в папку моего проекта. в самом коде я его окрасил в зеленый и красный цвет. Первый для змеи а второй соответственно для еды.

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

Так же присутствовал еще один баг который для меня на
тот момент был непонятен. В месте где появлялась змея
был зеленый квадрат. Который я не мог убрать.

Слайд 5

ЭТАПЫ 5 И 6

Для простого управления змеей я создал структуру/масив на 10000

ЭТАПЫ 5 И 6 Для простого управления змеей я создал структуру/масив на
объектов. Это про запас. Структура содержит только 2 переменных это координаты отдельной части змеи по иксу и игрику.

Для перемещения змеи я двигал
голову в сторону куда нажал
пользователь и потом через цикл я
передвигал все остальное тело.

А для проверки на столкновение я постоянно проверял координаты головы.
В первых условиях я проверяю выходит ли голова за пределы карты.
В цикле я проверяю не находится ли голова внутри своего же тела.

Слайд 6

ЭТАП 7 ИЛИ ДОРАБОТКА ПРОЕКТА

В начале я решил разобраться с багом генерации

ЭТАП 7 ИЛИ ДОРАБОТКА ПРОЕКТА В начале я решил разобраться с багом
еды. В каких то случаях она просто не появлялась на карте. Путем экспериментов я понял что моя генератор считает за карту ее край на котором умирает змея и иногда генерирует фрукты там. Для решения этой проблемы я просто сузил его поле генерации. Это уже было видно на одном из снимков экрана. Так же на этом этапе я увеличил змейку с размеров блока 10 на 10 пикселей до 20 на 20.

Но были еще 2 существенных бага.
Первым было то что часть массива
которая не была использована в змейке
была на карте. Это я пофиксил тем что переместил эту часть за карту

Второй баг заключался в том что змейка не росла
длиннее чем была ширина карты. Проблема оказалась в
том что я случайно в цикл отрисовки змеи поставил
переменную отвечавшую за размер карты. Исправил это
простой заменой переменной.

Имя файла: Проект-Змейка-с-изменяемыми-размерами-карты.pptx
Количество просмотров: 28
Количество скачиваний: 0