Создание игры на C++ / Змейка — Урок #3 (Логика игры)

Автор Sergei Plotnenko
Создание игры на C++ / Змейка — Урок #3 (Логика игры)

Привет.

Мы закончим с нашей игрой добавим и хвост для нашей змеи и создадим все основные логические моменты которых ещё не хватает в нашей игре также. Заходите на сайт nike.com ссылка на данный урок на сайте будет в описании видео. Здесь вы найдете и домашнее задание и готовый код.

Так, что он.

Здесь Понравится ссылка в описании создания хвоста для семьи — это достаточно сложный процесс. Почему Потому, что хвост должен в точности повторять траекторию движения нашей изменить к примеру если змея куда-то повернула вправо то хвост не должен сразу перестроиться весь вправо, а постепенно. Повтори Южном моменте поворот семьи постепенно также перейти в этот ряд. Вот соответственно достаточно непростой действие которое может показаться на первый взгляд. Ну на сложном моего создадим и разберёмся в во всех моментах для начала. Нам необходимо создать несколько новых переменных 1 — это будут у нас массивы 1 Massive X он у нас будет называться он будет вместить в себе 100 элементов и он будет в нём будут смещаться к, а все координаты нашего хвоста по иксу. Вот — это соответственно всё тоже самое только координаты здесь будут. По y.ua примеру у каждого нашего хвоста должна быть координатой так по иксу так и поиграю соответствие координат будут помещаться вот сюда в эти массива. Кроме того. Нам необходимо ещё дополнительно одна переменная она будет называться Intel и в неё будет помещаться количество элементов в нашем хвосте на примере 10 если мы уже съели 10 фруктов то. ВНП будет число как раз десять. Теперь же первым делом мы с вами. Давайте нашу найдём функцию и вот здесь где мы когда мы поедем какой-то фрукт. Мы здесь будем. НТЛ Вот это. Наша перемена увеличивать на единичку. Ну то есть наш вас будет становиться на единицу. Вот теперь пропишем дополнительную логику для отображения нашего окрас хвоста для начала нам потребуется H4 новых переменных 1 переменная. Это она будет называться px100 есть предыдущая позиция по иксу по умолчанию в игре изначально она будет равна и равняться тел X так так так так так так берём первая его значение соответственно когда мы только. Запусти мне игру то так, что я так сложно пишу сейчас секунду когда мы только. Запусти игру кто значение запишется как ноль. Но дальше когда мы уже будем продолжать игру то — это значение будет меняться писаться некая новое значение мы будем менять в цикле for который сейчас с вами напишем надо дождаться просто вот тоже самое. Мы с. Дианой и потому, что нас должны быть 2 координаты уже указан, что мы берём Y. Вот и сюда и также берём первый первый элемент. Вот кроме того как я говорил нам ещё две переменных нужно — это так как при 2x и они все особо сейчас не буду говорить потому, что вы поймете. В чём их нужно буквально через пару секунд так вот давайте мы создадим в нём мы поместим то, что мы берем от единицы. Почему от единицы потому, что вот эти вот вы прав x&y мы уже первое значение то есть вот этот вот нулевой элемент мы его уже сюда записали соответственно мне надо его заново проверять и обрабатывать мы просто уже берём сразу с единицей. А дальше, что мы указываем, что у нас будет идти до количество элементов в нашем хвосте то есть до NTL. Ну я и плюс плюс на на единичку будет всегда увеличиваться теперь теперь здесь v2x вот — это вот перемена двоих. Давайте, тогда пиши, тогда мы записываем по по по индексу. А вот то есть получается в как бы и прав 2y — это перемены в которой мы помещаем на полчаса мне просто необходимо когда мы помещаем в следующий элемент вот есть. ВПР Excel просто помещаем первый элемент h100x мы помещаем получается 2 предыдущий элемент второй элемент вот ну по счёту — это можно так объяснить. Так давайте так. Скопируй — это много говорил и мог за — это время писать соответственно. Нам просто надо тоже самое для координат с игреком вот дальше vt-x мы соответственно опять-таки берём его по индексу. А в него мы устанавливаем которую мы вот здесь уже сохранили ты всегда будет. Прав Прав X. Вот такая координата давайте тоже — это наверное скопирую и вот таким образом всегда ставлю тоже самое мы делаем для Y вот таким образом дальше мы дальше нам необходимо после. Что сделать — это X установить также как новое значение которой мы по красному платью. Отправь 2x. Вот например. Так ну и последнее — это пресс установить как 2y вот таким образом мы обрабатываем весь хвост мы получаем координаты первого. Элемента 2 элементов элементов и вот таких перезаписываемый и в принципе если мы теперь эти элементы будем сейчас писать в методе брал мы получим хвост который уже должен по сути двигаться так вот давай теперь на наш хвост пока он будет не идеальным, но тем не менее он у нас по крайней мере будет рисовать мы будем в нашем в наших функции ядра и вот здесь где мы. Нарисуем вот — это вот штучку да мы здесь будем и хвост рисовать соответственно всё всегда помещу то, что нас раньше было. Добавляйте фигурной скобки и открываем новый цикл for в него мы пишем энд. Янг дом к меньше вот так вот и K + + соответственно здесь у нас будет просто посидеть то, что мы проверяем если наш tlx по иксу по индексу к будет равна. И напомни — это у нас как раз координаты по иксу. Вот и дополнительно Tail Y у нас так-то и y у нас по координаты Y по индексу как будет равна, а то соответственно у нас будет происходить следующее мы будем выводить такую штуку coaxial Out и вот здесь просто маленькая. Ну поскольку там не использовал тут. Пускай просто маленькую маленькую букву о буду выводить.

0 комментариев
0

Читайте также