# Визуальное програмирование продолжение

Штумоз

это продолжение и дополнение первой части книги. Книга на 70% почти дописана .Она пишется не профессиональным автором,а любителем, в ней исключительно личные мысли автора и она являетсья просто черновиком ,который писалсья для напоминания .Человеку своственно что то забывать, потому логично где то созранить то что вы делаете. И почему бы этому черновику одной не доучки не стать книгой? Вы веть можете написать лудше? потому вы всегда можете сказать разве это книга? смотри как нужно и написать свою) Возможно она не будет редактироватсья и будет выложена на торентах с диском и примерами готовыми сделанными на скретч.Позднее просто будет выпущена более упрощеная версия без описаний куда войдет тока типовое и шаблонное для раз повторить и запомнить по примеру карточек ..так как идей еще много но человеку не посильно знать все все, он слишком мало живет что бы выучить все. И не каждый сможет потом потратить всю жизнь в написании книг-хотя это не такая и плохая жизнь )

Штумоз

Визуальное програмирование продолжение

Origin: http://samlib.ru/s/shtumozt/obnowlenie.shtml

Создан: 11/02/2019, изменен: 11/02/2019, 120k

Статья: Изобретательство

это продолжение и дополнение первой части книги. Книга на 70% почти дописана .Она пишется не профессиональным автором,а любителем, в ней исключительно личные мысли автора и она являетсья просто черновиком ,который писалсья для напоминания .Человеку своственно что то забывать, потому логично где то созранить то что вы делаете. И почему бы этому черновику одной не доучки не стать книгой? Вы веть можете написать лудше? потому вы всегда можете сказать разве это книга? смотри как нужно и написать свою) Возможно она не будет редактироватсья и будет выложена на торентах с диском и примерами готовыми сделанными на скретч.Позднее просто будет выпущена более упрощеная версия без описаний куда войдет тока типовое и шаблонное для раз повторить и запомнить по примеру карточек ..так как идей еще много но человеку не посильно знать все все, он слишком мало живет что бы выучить все. И не каждый сможет потом потратить всю жизнь в написании книг-хотя это не такая и плохая жизнь )

____________________________________________________________

## визуальное программирование на примере Scratch

• Визуальное программирование на примере Scratch

• Книга первая, часть вторая

• Лицензия CC BY - NC - ND IGO

• Оглавление

• Штумоз™No

•

• Штумоз™No

• Штумоз™No

• Штумоз™No

• Штумоз™No

• Штумоз™No

• Штумоз™No

• Штумоз™No

• Штумоз™No

• Штумоз™No

• Штумоз™No

• Штумоз™No

•

• Штумоз™No

• Штумоз™No

•

• Штумоз™No

•

• Штумоз™No

• Штумоз™No

• Штумоз™No

•

• Штумоз™No

• Штумоз™No

•

•

•

•

• Штумоз™No

•

• Штумоз™No

• Штумоз™No

• Штумоз™No

•

•

• Штумоз™No

•

•

•

• Штумоз™No

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

• Штумоз™No

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

• Штумоз™No

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

• Штумоз™No

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

• Штумоз™No

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

• Штумоз™No

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

• Штумоз™No

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

• Штумоз™No

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

• Штумоз™No

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

• Штумоз™No

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

• Штумоз™No

•


## Визуальное программирование на примере Scratch

## Книга первая, часть вторая

## Лицензия CC BY - NC - ND IGO

## Самиздат 2019 г. Штумоз™No

Штумоз™No

## Оглавление

13. Виды игр .Не большие примеры создания простых игр.

14.Как работает сражение? пример взаимодействия между спрайтами.

## Штумоз™No

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

На базе одного и того же кода можно сделать много игр ,не смотря на то что код у них будет один и тот же -все игры будут разными, при чем настолько существенно разными -что никто не поверить что у них одинаковый код или одинаковый набор логики. Изредка случается что кто то один водит уникальный элемент ,но через время это становиться массовым. Так например мной на форуме одной игры созданной по рассказам Мин-Хи Чон предлагалось вести карты и совместить жанр ККИ и MMORPG .игра мне нравилась, а боевая система нет.

Тем не менее я разработала одну теорию .Эта теория гласить что среди людей живут маги и чародеи, исполнители желаний и волшебники ,колдуньи ,ведуньи и даже боги. Если публично предлагать самые бредовые идеи, кто то может их услышать и реализовать . Никто серьезно не воспринимал такую систему боя тогда, даже смеялись над бредовостью предложения, тем не менее ряд игр спустя два года ее применили, пусть и в видоизмененном виде. .

Наиболее близки к этому стали игры Astellia Online, Soul Worker ,это очень близкая идея ,где карта используется как призыв способности или маунт на короткое время. Тем не менее были игры где была похожая идея ранее.

Формально игры можно делать по шаблонам. Раз создав какие то шаблоны можно просто штамповать игры.

Условно можно разбить все боевые системы на около 20-30 шаблонов по котором можно наладить конвейер выпуска игр . Это не требует практически не навыков, не знаний. Это одна из причин почему в какой то момент времени не смотря на большое количество игр -хороших игр просто нет. Это одна из Главных причин почему меня заинтересовала разработка игр.

За последние 5-10 лет было создано всего 3-5 игр заслуживающих внимания .Да игр много, точно так же как много книг, точно так же как много фильмов. Но чем большее количество вы смотрите или читаете или играете -растет требование к тому -что вы смотрите, что вы читаете и во что играете .За последний год стало сложно найти даже пару хороших книг, при потребности от 60 книг в год. Другими словами все что существует - оно не отвечает потребности. Более того рынок просто переполнен похожими друг на друга играми.

потому я хочу рассмотреть наиболее распространенные шаблоны игр .

Первый шаблон

Пошаговые стратегии. Существует большое множество игр наиболее известные.

Heroes of Might and Magic III , и стоит упомянуть достойную внимания King's Bounty: Принцесса в доспехах .

В данных боях поле представляет себе аналог шахматной доски или Гобан

Так как такие клетки часто нужны что бы делать такие игры как шашки, Шахматы ,Го, Мельница, Тафл , лендлорда, Особняк счастья , Чатуранга и другие игры в том числе пошаговые стратегии ,Давайте приведу пример как их быстро рисовать ,это может пригодиться .

## Штумоз™No

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

Сделаем стандартное поле 8 на 8-как наиболее распространенное .

Я покажу -два решения . одно 8 на 4 второе 8 на 8.

для начала я покажу основу построения .Во первых это часто повторяемый блок идти какое то количество шагов. Потому Другие блоки создать блок ,где создается клон потом спрайт сдвигается и снова делается клон и так 8 раз. после чего нам нужно сместить спрайт на строку в верх. что делается смещением координат .Данный код создает поле 8 на 4

где 8 шагов это длина по горизонтали ,а 4 по вертикале.

Как видно этот код можно упростить.

Так как у нас количество смещений верх равно тоже какому то одинаковому значению, и скорее всего оно равно ширине шага.

потому мы можем упростить вторую половину кода.

решение будет следующим.

установив начальную точку, мы просто повторим 8 раз значение создать блок ,после чего спрячем наш спрайт, и остановим выполнение кода. Перед выполнением мы задаем идти в задний слой, для того что бы если мы будем размещать спрайты-спрайты всегда были над полем. А в нашем блоке допишем условие что закончив выполнять блок спрайт должен сместиться по значению игрек на +40 условно шагов . Делаем мы это через оператор Движение и оператор + где прописываем что игрек + количество шагов по игреку.

## Штумоз™No

В итоге у нас шаблонное поле ,разбитые на равные клетки. Мы можем сделать любые Визуальный спрайты и сделать игру на базе этого поля. даже по броску кубика. Это типичный шаблон пошаговых боев. Меняя обзор камеры, рисуя спрайты из этого шаблона можно сделать игру аналогичную . Braveland Heroes это тоже самое поле, оно везде стандартно ,так как это шаблонная игра.

Следующая система очень похожа на предыдущие ,отличие лишь в том что спрайты в такой систем практически статичны, неподвижны .

Они остаются на своем месте -выполняя лишь анимацию, пример таких игр Shakes and Fidget, Child of Light- «Дитя Света», Disciples II, Onmyoji.

В этой системе нету сетки боя ,вы просто располагаете спрайты напротив спрайта .

## Штумоз™No

Следующая система.

Это точно такая же система как предыдущие ,тоже своеобразно пошаговый бой но сделано в одной плоскости ,а очередность хода передается через иконки ,яркий пример Metal Waltz

-Стальной вальс .

наиболее близко к этой системе можно рассмотреть систему боя ККИ Коллекционная карточная игра .

Как правило используется в настольных играх ,но часто бывает и наоборот из ПК игр делать настольные.

Пример настольных игр берсерк герои время машин.

## Штумоз™No

типичный игровой ККИ это Eternal Card Game. Разница заключается лишь в оформлении поля, И самих картах и героях.

Существует множество игр ,но в основе каждой лежит Шаблон . Вы можете сделать точно такую, лишь сделав свои карты и изменив слегка правила.

Другой тип игр -платформеры.

Самый известный это  Earthworm Jim , Червяк Джим EWJ.

## Штумоз™No

и пожалуй нельзя не назвать игру Comix Zone

это типичные платформеры ,смело можно назвать лучшими в этом жанре.

конечно есть много других, Где вы просто бегаете прыгаете ,те что вышли еще на 8 битных приставках первыми. К таким относиться Марио. Contra Evolution, Ninja Gaiden II: The Dark Sword of Chaos, и конечно игра которая вышла на плестейшен Castlevania: Symphony of the Night.

## эти игры самые простые для реализации ,их наиболее просто делать .

## Штумоз™No

Следующая категория.

Рогалики бродилки-

это конечно игры такие как Greedy Cave , Torchlight II , Diablo II, Sacred. магия крови 2, аллоды 2

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

в конце каждого уровня сражаясь с босом- такая схема называется рогалик.

В другом варианте сами локации - это аналог подземелья.

На самом деле существует большое количество игр ,но все их можно разбить по шаблонам.

Зачем это нужно знать? просто что бы иметь представление о том-какую игру вы хотите сделать?.

Что бы выбрать стиль и характер игры, нужно определить какая будет ваша игра? о чем она?

После чего вы сможете создать персонажей, и написать сценарий вашей игры .

Следующий вид игр

Это квесты ,головоломки, логические игры

наиболее известные такие как ;

Не верь худо , Василий Иванович и Петька, Космические рейнджеры у которых большое количество квестов на планетах.

Из головоломок , это 5 в ряд, крестики нолики и другие . Часто это смешанный жанр ,когда в квест водиться головоломка или мини игра головоломка. Так же это разряд всех собирательных квестов ,найди 10 предметов или отличий. Или решение логической задачи , например наиболее популярная игра таких жанров сегодня это Cut the Rope. В этой категории так же можно отметить игры пазлы. Яркий пример такой игры Водопроводчик суть игры сложить пазл ,что бы игра пошла по трубе.

## Штумоз™No

Отельным классом стоять разные музыкальные игры и гонки, аркады и шутеры и игры на выживание

класс Шутеры -можно обозвать условно стрелялки. Суть игр просто уничтожать большое количество мобов . С гонками понятно, примеры Need For Speed , машины условно проделывают путь по трасам, сюда же можно отнести скачки. Это самый легкий для создания игр. Музыкальные игры, это как правило музыкальные инструменты.

ну давайте сделаем одну для примера .

Это самая простая Игра . Любой из вас ее может сделать ее всего за 10 минут.

Мы делаем 7 спрайтов каждый будет отвечать за одну ноту .

после чего мы через поиск звуков добавим Звуки piano или же можем загрузить любые другие которые у которых соответствие звучанию нотного ряда До, Ре ,Ми, Фа, Соль, Ля Си.

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

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

Код очень простой .Когда флаг

нажат, то всегда проверять условие касается ли спрайт мышки ? и если касается издать звук. и сделать паузу. Любую по длительности. Она нужна для того, что бы когда мы навели курсор, нота воспроизводилась с задержкой.

Таким образам просто наведя курсор мышки на спрайт ,тот издаст звук.

и этот код размещаем в каждый спрайт .Проверяем что звук в каждый спрайт так же поместили. И изменили согласно звучания.

Это полностью рабочая программа. Музыкальная игра.

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

## Штумоз™No

гонки.

Давайте сделаем простую игру гонок.

рисуем спрайт машины ,это может быть квадрат и круг вместо кабины. Кто как умеет . так и рисуем.

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

Зададим управление нашему спрайту.

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

сделаем это через движение по иксу. тогда Другие блоки -создать блок . Если клавиша стрелка вправо то изменить х на 10 если влево то на минус 10. Когда флаг нажат ,то перейти в точку х-100 y -150 Всегда блок управления.

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

потому дописываем условие если касается спрайт 1 то изменить х на 12 ,а если спрайта 2 то на минус х -12. что будет отталкивать наш спрайт обратно на условно дорогу.

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

Если мы теперь нажмем флаг ,то наша машина будет перемещаться вправо и влево. и когда касается бордюра , то будет от него отталкиваться .

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

## Штумоз™No

Видимость езды создается за счет движения спрайтов на встречу нам.

Мной заданы так же эффекты торможение и ускорения. Для этого мы рисуем еще одну машину или делаем клон той что у нас есть ,и задаем движение на встречу.

Для ускорения по сколько спрайт встречной машины передвигается по оси игрек. вынесены вот такие условия .

если стрелка нажата вниз- что условно торможение машины, то изменить игрек на 4 шага ,и издать звук похожий на торможение. что бы не было задержек звук делается через отельную команду

то есть когда стрелка вниз первая часть отвечает за скорость , вторая часть когда стрелка вниз -за звук.

Второе условие когда стрелка нажата верх, то так же вынесен отдельно звук,

и при нажатии будет воспроизводиться звук.

А теперь сам код нашего спрайта. Если бы мы делали только одну машину на встречу, то Код был бы таким.

перейти в координаты х-0 игрек 145,после чего всегда изменить игрек на минус количество шагов пусть на 10 . и создать условие что когда коснется края или спрайта то исчезнуть. Сменить костюм на взрыв и любое другое условие.

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

потому мы ставим генератор для генерирования трех мест появления машин.

мы задаем точку начального появления

Делаем это через оператор иначе.

нижняя часть кода отвечает за движение ,верхняя за генератор машин. Делаем это через оператор иначе. Поскольку у машины всегда три положения то условие если 1 =1 до 3 где 3=3. то если получим число 3 то машина перейдет в точку координат х-86 y 126 если нет -то выполнить условие иначе.

## Штумоз™No

и если снова задаем генератор чисел и условие . Если выпадет число от 1 до 3 и 2=2 то машина переместиться в точку в точку х-2 e 139, иначе если число не равно одному не двум, то в положение три . в точку х 78 y 144 .

и повторять все это пока не коснется края или спрайта нашей машины .через оператор повторять до того как коснется край или спрайт 1. ,все время изменить на -5 .и добавляем условие ускорения если стрелка верх нажата? то изменить игрек на минус восемь. Теперь при нажатие скорость спрайтов увеличиться.

Вот так просто сделать простые гонки .

отельный жанр это хонор разные игры ужасов вроде Resident Evil 3, Parasite Eve,

Silent Hill 3 . Vampire: The Masquerade - Bloodlines.

Не смотря на большое разнообразия -у всех у них есть общие принципы. Можно конечно сразу пытаться сделать свой Dark Souls ,но лучше начать с малого.

что общего во всех играх?

Можно вместо программировать каждый раз новую игру сделать шаблоны

1.Управления персонажем. -они всего имеют от пяти до не более двенадцати стандартных шаблона.

2.Шаблон поведения монстра, боса, бота ,не смотря на разнообразие можно создать типовых 10-20 шаблонов что хватить на 80% игр.

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

Это делают Игровые конструкторы. К сожалению все они старые и практически не менялись более 10 лет .

Все игры - это клоны каких то других игр, только визуально по другому оформлены .Условно их не более 30-60 готовых шаблонов. Потому лично мне не понятно почему до сих пор нету встроенных шаблонов в саму среду разработок игр, вместо этого разработчика принуждают заниматься программированием , рисованием и кучей не нужных других вещей -вместо создания самих игр .Все это ведет к тому ,что тех кто мог бы создавать игры ,просто нет они не создают их. Они не хотят тратить время на изучение программирования, а потом теряют интерес к самому созданию игр. Потому что игры можно создавать очень быстро за неделю две, а игры ААА класса за месяц в одиночку. Все что нужно- программное обеспечение с готовыми шаблонами и легко создаваемыми моделями и окружением.

Но на рынке таких нет, их почему то не делают. Хотя в корпорациях я уверена есть ,пример тому Редакторы карт некоторых игр .Они представляют собой тот самый редактор карт ,где нужно просто расставить модели и сделать дополнительную карту. например редактора карт Героев 2 или Warcraft III World Editor.

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

Лично мне не понятно зачем прописывать миллион раз один и тот же самый код-который писали до этого миллионы программистов да еще на разных языках программирования. Лично мне программировать не интересно и мне не понятна причина принуждение к учебе программированию. При этом любой из вас может этому научиться этому за 10-20 уроков.

За две недели любой из вас может программировать. Но лично я бы предпочла готовые шаблоны -потому что это сэкономило бы мне много времени. Я потратила меньше недели на изучение, лично мое мнение -я не понимаю почему не сделать готовые шаблоны? и почему не встроить их в игровые движки что бы разработчик не тратил время на то- что ему не нужно, то есть на программирование.

## Штумоз™No

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

Когда спрайт касается другого спрайта и дальше существует бесконечное множество как это применять.

например один спрайт это меч или пуля, второй условно противник или один спрайт торпеда ,а второй корабль или танк .

Тогда при касании мы можем отнять какое то значение ,которое мы задали спрайту. Рассмотрим простой пример.

Пусть один спрайт будет пушка. Второй спрайт снаряды к пушке- ядро.

Зарядим нашу пушку.

для этого спрайт ядро при когда флаг нажат ,мы через операторы движения ,указываем перейти в положение ,где вместо случайного положения прописываем спрайт пушка.

.Поскольку ядро попадает в центр, мы смещаем его относительно центра на 100 шагов и на 35 по игрек.

У нас есть теперь заряженная пушка. Осталось заставить ее стрелять

и визуально что бы ядро появилось только в момент выстрела делается это так.

Добавим теперь движение .Если клавиша пробел нажата, то старт звук выстрела ,показаться повторить до того как касается край. если касается край? то спрятаться, проверять всегда.

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

и если коснется то снова спрячется.

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

И создать любое количество спрайтов -задавая ходы поочередно.

Теперь нам нужно что бы наш снаряд наносил урон по условному противнику.

Для этого мы создадим спрайт врага.

И ведем шкалу урона .

## Штумоз™No

Для нашего спрайта будет условие что он будет двигаться в сторону пушки пока не коснется ее. И смена костюма, для визуальной ходьбы, поскольку их два, то просто смена наследующий костюм.

А ядру мы допишем условие .Если касается края то спрятаться, а если дракона -то изменить значение здоровье минус 10 .

И водим значение здоровья равно 100 если флаг нажат..

И мы можем добавить еще условие Если здоровье дракона равно ноль-то конец игры.

после условия касается края нужно добавить края и дракона ,перед стоп все -задать временную паузу.

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

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

Это может быть топор если он касается дерева, то отнять жизнь дерева если дерево ноль-то дерево спрятаться появиться 4 бревна. Кирка касается камня, если 10 раз -то получить 1 руду.

шпага касается противника - отнять жизнь.

То есть почти любая игра которая связана с добычей ресурсов, любой стреляющий танк,

все это всего лишь одно условие спрайт касается спрайта- происходить какое то действие.

Для закрепления материала я покажу еще 3-4 примера такого взаимодействия. После чего любой из вас сможет делать практические любую игру связанную с тем что бы стрелять, или сражаться. Это не готовые игры, это пример как делать игры.

## Штумоз™No

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

Создадим спрайт прицела.

очень простое управление ,перейти в точку ноль по икс и игрек.

всегда проверять нажаты ли кнопки стрелка верх или стрелка внизз?

и если нажато влево то изменить на - 5 шагов, если вправо то на 5 .

Таким образом прицел будет перемещаться по горизонтали.

Сделаем орудие

когда флаг нажат всегда повернуться в сторону прицела. Теперь наше орудия будет поворачиваться в сторону прицела.

ну и сам код торпеды. Перейти в башню оружия и спрятаться.

повернуться в сторону прицела .идти 90 шагов что бы снаряд появился после дула.

Если клавиша пробел нажата? то воспроизвести звук выстрела, показаться, повторять пока не коснется края,

идти 10 шагов, после чего спрятаться.

Таким образом у вас будет рабочая модель пушки которая стреляет в направления прицела.

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

Через операторы плыть в указанную точку, или идти и если коснется края то идти в обратном направлении.

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

Давайте рассмотрим еще один пример .

Стрельба в движении.

## Штумоз™No

Мы практически оставим код без изменения

Нарисуем спрайт какого то танка или машины. Остальное оставим без изменений

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

с интервалом 0,1 секунда танк движется в сторону прицела ,можно сделать управления клавишами.

Сам прицел теперь когда флаг нажат-то перейти в указатель мыши.

И снаряд без изменения если флаг нажат, то перейти в орудие повернуться к прицел, идти 70 шагов, и если клавиша пробел нажата то звук выстрела ,показаться повторять пока не коснется края. Спрятаться . Вы можете самостоятельно переделать управления танком.

По этой механике работают любые выстрелы. Так же их можно сделать через систему клонов.

Теперь рассмотрим механику касания, до этого мы ее рассматривали.

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

Потому рассмотрим пример добычи ресурсов.

Нарисуем два спрайта 1. Топор .2 дерево. Внутри спрайта топора создадим дубль топора и изменим угол наклона для анимации рубки дерева ,внутри спрайта дерево нарисуем спрайт полено. А теперь напишем код .

## Штумоз™No

Для топора .перейти в положение х-43,y-118 далее поскольку у нас жизнь дерева будет равно 100 ,а удар топора отнимает по 10 ,то повторить 10 раз

## Штумоз™No

изменить костюм на топор 1,издать звук удар топора, интервал задержки 0,5 секунды, сменить костюм на топор 2, и тоже ждать 0,5секунды если спрайт касается дерева? то изменить жизнь дерева на -10 . Разместить спрайт топора так -что бы во втором положении она касался дерево.

Теперь спрайт дерева.

Когда Флаг нажат , то задать жизнь дерево через созданную переменную равно 100

перейти в положение х=11 у= -6

проверять всегда, равна ли жизнь дерева нулю?

и если да то сменить костюм на полено играть звук срубленного дерева. и стоп скрипт.

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

Давайте сделаем что бы топор передвигался по карте вправо влево и менял костюм

согласно движению. Для этого мы добавим еще два костюма .Сделаем дубль костюма топор и отразим.

У нас получиться 4 картинки топора. Код когда флаг нажат оператор всегда и если клавиша вправо нажата -сменить на костюм топор смотрит направо ,а если влево то на костюм смотрит налево . и В первом случае идти 10 шагов, во втором минус 10 . Теперь сделаем что бы наш топор мог рубить.

Для этого мы добавим клавишу пробел .

Теперь нам нужно определить в какую сторону смотри топор?

поскольку если мы ведем клавишу пробел то при нажатие на нее ,нам нужно знать куда смотрит топор? в какую сторону? иначе он будет смотреть влево, а рубить вправо.

Для этого мы водим переменное значение в разделе Переменные мы берем моя переменная.

И задаем значение 1 для вправо, а значение 2 для лево .И дописываем что при нажатие кнопки вправо после изменить костюм задать моя переменная 1, а при стрелка нажата влево задать значение 2. Теперь Если вы нажмете вправо у вас значение будет равно 1 ,а если влево то 2. Таким образом мы всегда знаем в какую сторону смотрит топор .Теперь мы можем добавить клавишу пробел .И задать условие .

## Штумоз™No

Если клавиша пробел нажата и имя моя переменная =1

то изменить костюм на топор вправо 2 ждать 1 секунда вернуть значение костюм топор вправо 1 .Если клавиша пробел нажата и моя переменная равно 2,то изменить костюм на топор влево 2 ,ждать 1 секунда и вернуть костюм топор влево 1 .

Теперь если топор смотрит вправо его значение равно 1 если нажать пробел то так как наше значение равно 1 будет изменение костюма на топор вправо 2 и через секунду обратно костюм 1.

точно так же

если топор сморит влево то его значение будет равно 2 .

тогда сработает условие для

если пробел равно 2 и нажат.

то меняем костюм влево на 2

и снова через секунду на первоначальный.

при других условиях срабатывания не будет.

Давайте дорисуем условно какого то персонажа к топору

и добавим ему прыжки.

Что бы у нас был полноценный персонаж с топором. Который будет передвигаться вправо влево и прыгать.

Можно взять готовый спрайт и просто дорисовать топор.

Я нарисую просто круг.

## Штумоз™No

Прыжок можно реализовать большим количеством способов .

вот два самые простые. Что такое прыжок? это передвижение вертикально верх потом вниз. Для плавности можно выполнить через повторить несколько раз небольшое передвижение .Потому задать его можно как плыть по игрек пусть 20 шагов в верх, потом обратно вниз на точно такое количество.

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

сделаем через отельное нажатие флага .Если флаг нажат ,то первое условие если стрелка верх нажата? и одновременно направление равно 2 ,тогда повторить изменить игрек на 5 и идти минус один шаг 20 раз, после чего повторить 20 раз изменить игрек на минус точно такое же количество то есть минус пять и идти минус один шаг.

и повторяем тоже само дублируя блок, но меняем условие если стрелка верх нажата и моя переменная равна 2 .

и делаем смену шагов на положительные, то есть просто один .

все теперь по нажатию стрелки верх спрайт будет подпрыгивать и смещаться в том направление -в котором он смотрит.

## Штумоз™No

теперь можно добавить платформу например ...и шар будет по ним прыгать.

Давайте сделаем простой платформер с 1 спрайтом , у меня это шар и два спрайта платформы. В этот раз управления спрайтом сделаем когда клавиша стрелка вправо то повторить 10 раз идти 10 шагов это сделано для плавности. Если стрелка нажата влево то повторить минус 10 шагов 10 раз. и если стрелка верх нажата то изменить игрек на 20 10 раз. Управление спрайтом готово. Теперь сделаем так что бы спрайт не проваливался сквозь платформу. Есть несколько решение этой задачи ,вариантов много . Рассмотрим самые простые. Что такое падание? смещение по игрек с какой то величиной, что бы его остановить нужно установить значение игрек в ноль. Для этого нужно создать переменную.

Назовем ее падение вниз. И зададим постоянное падение если наш спрайт не находиться на платформе. Задать значение равно ноль. Всегда изменить падение вниз на минус один .Изменить игрек на значение падения, то есть игрек равен падение вниз. Падение будет продолжаться пока не будет выполнено условие ,если касается и тут моно выбрать варианты цвета -где цвет верх нашего спрайта земли или самого спрайта . В случае если спрайта то нужно задавать условие для каждого спрайта ,потому выбираем цвета . ,если касается то изменить игрек на 1 -что остановить падение и так как минус один на один даст ноль, после чего задаем падение вниз равно ноль. И падения прекращается. Дальше вы можете делать клоны платформ, меню и задавать значения когда касается края то смена фона на другой.

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

И Уметь составить сценарий, написать инструкцию. Например если вы покупаете к примеру пачку макарон ,то обычно на обороте написано что когда вода Закипит, то бросить макароны в чуть подсоленную воду, можно добавить один лавровый лист ,варить 10 минут, после чего откинуть через дуршлаг . Это и есть программа для приготовления макарон .Если бы мы писали программу для Arduino ,то это было бы так в 12-50 таймер включит нагревательный элемент для нагрева воды ,когда датчик температуры равен температуре кипения воды ,то сработает электродвигатель или гидравлический привод. Который сбросит Порцию макарон и включить таймер 10 минут, после чего выключить нагревательный

## Штумоз™No

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

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

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

Нарисуем спрайт просто шар .И напишем вот такой код. Когда флаг нажат то,

повернуться в направление ноль. Что бы шар смотрел верх . Установим икс и игрек равным нулю -что бы шар появился по центру экрана.

и теперь зададим всегда идти 10 шагов- где количество шагов скорость перемещения и если касается края -то оттолкнуться .Таким образом наш шар при достижения края сменит направление и так бесконечно.

Добавим теперь спрайт платформу и условие что если шар коснется ее то он будет отскакивать от нее.

И конечно управление для платформы.

Рисуем любую платформу.

И пишем условие для нее .

Когда флаг нажат то , Всегда проверять условия

Если Клавиша стрелка вправо нажата? то идти 10 шагов,

Если стрелка влево нажата? то идти минус 10 шагов.

Теперь нудно установить координаты для платформы ,они размещаются после оператора когда флаг нажат.

Например у меня это икс =44 ,а игрек =-142.

Теперь нужно изменить условие нашему спрайту условно мяч ,что бы он отталкивался от нашей платформы.

для чего мы создаем еще одно условие

Если мяч касается спрайта платформа ,то повернуться в направлении случайным образом на угол от -35 до угол 35 ,что бы касаясь выдавался случайный угол поворота который направлен верх экрана и дописываем после если касается края- то оттолкнуться.

Теперь когда мяч касается нашей платформы ,он отталкивается, достигая края делает то же самое.

## Штумоз™No

можно добавить условия что если коснется нижнего края ,то будет отнято количество очков.

Или добавить еще один спрайт условно ворота ,касаясь которого будут набираться очки и играть до какого то значения.

Давайте добавим спрайт условно земля.

И пропишем условия ,Для начала делаем переменную касание земли и создаем спрайт земля.

Добавим условие если касается нашего спрайта земля, изменить касание земли на -100. Говорить Пропустил 2 секунды, повернуться в направлении выдать слученное от -35 до 35 угла, но мы можем изменить этот ряд задав определенное значение например на х=0, у =180

теперь создадим условие если то, то иначе. Где пропишем что если касание земли равно ноль- то будет выполняться условие Сказать конец игры и стоп все. Иначе будет выполняться условие на проверку касается ли земли?

теперь перед началом Игры задаем количество жизни земли например 500 .Тогда если флаг нажат то установить значение касается земли равно 500.

## Штумоз™No

так выглядит весь наш код спрайта мяч . Если ошибок нет то у вас получилась игра , до 5 пропусков мячей. Ее можно улучшить ,вести платформы которые будет разбивать мяч или другие условия ,сделать уровни-все зависит от вашей фантазии.

на базе этого вы можете сделать игру теннис, хоккей,

футбол

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

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

Теперь рассмотрим примеры

Возможных противников

Т.е.

мобов. Как правило мобы срабатывают при приближении игрока или изначально направлены на игрока .

Или это могут быть простые мобы ,которые двигаются строго в определенном порядке и последовательности не реагируя на игрока .

Это может быть механизм который срабатывает при взаимодействие со спрайтом.

## Штумоз™No

Моб -сокращение от англ. mobile object, подвижный объект. Примером самого простого моба может быть например просто двигающийся из стороны в сторону спрайт.

можно сделать следующее .Когда флаг нажат, то всегда идти 10 шагов и если касается края то оттолкнутся или же если касается цвета или спрайта сменить движение на противоположное. Можно задать условие перейти в случайное положение ,можно установить задержку времени и эффект призрак. Можно сделать Условия плыть в случайное положение .

А можно задать движение перейти в координаты ,можно например каждый раз делать генерируемые координаты -это пример самых простых мобов.

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

Для этого мы нарисуем два спрайта круг и квадрат .

Квадрат у нас будет башней, называем спрайт башня.

Тогда варианты могут быть такие для нашего шара -моба.

Перейти в какую то точку координат после чего всегда или до того как повернутся к башне

и идти 1 шаг шагов или можно реализовать плыть к башне 1 секунду. Таким образом Шар всегда будет двигаться в направлении башни. После того как он достигнет спрайта вы можете прописать ему условия например он будет бить условно мечем отнимать здоровье. Меняя движения и направления, поведения объекта можно получить разную анимацию и реализовать много задумок. Например движение наскок в сторону игрока и паралич спрайта 1 секунда через время задержку. То есть все зависит лишь от фантазии.

## Штумоз™No

Рассмотрим еще один пример .

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

Тогда это будет выглядит так .

Установим наш спрайт в любую точку на нашем экране переход в игрек и икс любое положение .

после чего создадим условие что если

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

Или установка стражей.

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

Или например при условии меньше 20 шагов прыгать к другому спрайту или совершать другие действия. Но все действия основаны на вот таких простых действиях.

Давайте рассмотрим генератор ботов.

Самый простой генератор это создать клон одного спрайта с каким то интервалом. .

Допустим берем рыбку и пишем код для спрайта рыбки.

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

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

Теперь каждый раз в интервале 1 - 3 секунда у нас будет создаваться клон .

Значение времени может быть любым.

Теперь нужно прописать условия клонам. Самым простым вариантом будет Когда я начинаю как клон ,показаться и задать условие повторять до того как наш клон коснется спрайта .

изменить х на -2 где значение икс скорость перемещения нашего спрайта .Значение минус задает направление налево. И если клон коснется края , то удалить этот клон .

но этот код описывает условие что спрайт появляется с одной стороны и исчезнет когда достигнет второй . Как правило стоить задача с обеих сторон ,конечно можно сделать два спрайта и клоны одного будут идти слева направо, а клоны второго справа на лево.

## Штумоз™No

Это тоже хорошее решение и довольно простое.

Но попробуем реализовать все на одном спрайте.

Есть такой игровой движок Unreal Engine 4

Она использует Blueprint .

Блупринты — это визуальный скриптовый язык, который позволяет написать логику игры без применения языков программирования.

Конечно он уступает Скретч , тем не менее в этом языке есть интересное построение логики ,а точнее блока Если то , то иначе.

Похожая модель применяется и в Unity

Bolt — инструментарий для визуального программирования игр на движке Unity

на самом деле таких языков было очень много

все это примеры визуального программирования.

Тут важен один общий принцип логики.

Во всем этом важно только логика .Да ,ИЛИ, Нет

и выглядит она так .

Условно квадрат и вход для условия или и выход да или нет. Если еще проще это очень похоже на корневой каталог Volkov Commander.

## Штумоз™No

Если еще упростить то например блок Или имеет выход Да ,условно равно 1 ,блок Нет равно 2 ,а сам блок и есть условие Или.

Каждый такой блок может взаимодействовать с точно таким же блоком до бесконечности . Что дает нам всего только два варианта да ,нет или условие или. В отличие от математики логика способна решить любые задачи благодаря сведение значение из бесконечности к известным значением или назначив неизвестное значение новой ячейке. Именно так работают Компьютеры потому что они считают и делают вычисление не через математический расчет ,а логику поскольку любое число для машины выглядит как система нулей и единиц. Данное утверждение является не аксиомой ,а личным наблюдением автора ,так как до того как научиться в школе считать , большинство вычислений будучи ребенком автор делал похожим способом. Собственно по этому задачи сделанные на логике решать значительно проще, чем математическую модель . Так же логика способна обучению, а математика такое попросту не предусматривает ,поскольку это точная наука. Это было не большое отступление от темы. Я привела это что бы показать следующий пример и было проще понять что в нем делается . Мы изменим нашу схему когда я начинаю как клон .

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

Когда я начинаю как клон

то задать направление от 1 до 2.

если задать смещение например по другим сторонам то можно задать больше количество сторон присвоив каждой значение.

В таком случае мы прописали бы значение для каждой цифры значения, что если значение равно столько то , то выполниться условия такое то . Поскольку значение всего два то если выполнено первое значение, то выполняется первое иначе происходить выполнение второго .Т.е. Если 1=1 то выполниться первое условие, а если 1 не равно 1 то второе.

тогда код будет таким. Где моя переменная -является нашем направлением,

Сменим моя переменная на направление, но можно оставить как есть .Тогда условие моя переменная, можно переименовать на направление равно 1 , то установить значение икс равно 220- это край рабочего экрана . И изменять икс на минус один ,пока положение х не станет меньше минус 220 что соответствует краю экрана ,после чего мы можем удалить наш клон . Иначе и делаем зеркальное условие .

## Штумоз™No

тогда код будет таким.

Задать случайное направление движения

от 1 до 2 где 1 будет наша левая сторона, а цифра 2 правая.

и если направление 1 будет 1 то установить значение икс в минус 220 после чего через оператор повторять до того как ставим значение повторять до того как икс не станет значением больше 220 , и если условие выполнено значение больше 220 , то удалить клон.

иначе соответствует значение два. То есть если у нас не один -то у нас два, и выполняется иначе. Тут устанавливаем Зеркальное значение вместо минус 220 ,переходим в значение по иксу в 220 ,и выполняем обратное условие ,пока положение икс не станет меньше 220 меняем положение икс на минус один пока х не станет меньше 220 и после чего сработает следующее условие удалить этот клон. Но визуально у нас получается следующее

у нас рыбка плавает только по иксу...то есть плывет на встречу сама себе.

Давайте сделаем произвольное положение по игрек. Что бы она была выше или ниже какого то уровня.

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

Вот теперь наши рыбки плавают в произвольных значениях.

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

## Штумоз™No

Если мы это сделаем через изменение направления движения , то наши рыбы будут плыть перевернутыми, что бы этого не было делаем следующее.

Устанавливаем рыбам значение влево/вправо .

Теперь рыбы будут изменять положение только на лево или направо ,теперь мы можем добавить смену направления.

Но мы могли сделать это через смену костюма установив костюм для каждого направления.

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

## Штумоз™No

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

Если бы было несколько костюмов мы бы прописывали последовательность и интервал каждому, но поскольку костюма всегда два, то просто меняем на следующий. Когда я начинаю как клон , то всегда следующий костюм, где время задержки 0.3 секунды. Это может быть заставкой в виде Аквариума рыбок. Где рыбки плавают по аквариуму. Или мишени для сбивания. Это типичный простой код ботов, для любых целей и задач. Например для игры Морской бой где нужно сбивать корабли, где вместо рыбок будет корабли противника. Или простой тир , где рыбки могут быть утками и охотник будет их сбивать зависть от вашей фантазии.

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

Обязательно сделаем в прицеле центр и зальем его цветом которого нет на фоне. Код прицела прост, для удобства я перевожу прицел в ноль по икс и игрек. -но это можно не делать. А вместо этого сразу всегда перейти в указатель мышки.

Теперь добавим условие Для рыбок.

Когда я начинаю как клон всегда выполнять условие если касается цвета центра нашего прицела и мышка нажата? то удалить клон. Мы можем добавить еще одно условие если у кого то работает не стабильно например красного + черного цвета прицела и при условии мышка нажата.Так как код работает достаточно стабильно

то я вожу только цвет прицела.

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

Можно сделать три обводки точки внутри прицела и сделать условия что все три цвета касаются- так будет точно стабильно .вам нужно будет лишь добавить через оператор и свои два три цвета .Теперь вы можете простую игру просто убивать рыбок. или вести подсчет рыбок за время по таймеру.

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

## Штумоз™No

Сделаем по координатам. Поскольку у нас случайное генерирование координат по игрек ,можно использовать это значение, но можно использовать и другие варианты .

Делаем это так .Когда я начинаю как клон , то

у нас диапазон значений от -60 до +60 ,тогда выберем значение меньше нуля. установить костюм размер 80 % а если больше нуля то 100%.

и если игрек больше 40 то сменить костюм на 150% .

мы можем установить гораздо больше условий.

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

Дальше мы можем сделать не сколько вариантов подсчета

например у нас есть три вида рыбок.

большие

маленькие и средние.

Мы можем конечно для упрощение сделать так

Вести переменную убито рыбок ,после чего

после каждого убийство изменить счет на 1

Для этого когда я начинаю как клон всегда если касается красного цвета и мышка нажата

то изменить значение убито рыбок на 1.

А в значение когда флаг нажат задать значение убито рыбок равно нулю.

А можем вести подсчет каждой рыбки .

То есть отдельно большая рыба, маленькая и средняя. Для этого создаем три переменные

Которые называем Убито Больших рыбок, Убито Средних рыбок и убито маленьких рыбок.

Как узнать какую рыбку мы убили? В первом условии когда мы начинаем как клон мы установили значение костюма размеры 80,100 и 150 ,тогда если размер

костюма равен 80 то это будет маленькая рыбка ,если 100 то средняя, а если 150 то большая.

## Штумоз™No

Тогда когда флаг нажат мы устанавливаем все значение равные нулю. Для каждого вида рыбок . А в условии Когда я начинаю как клон и если касается цвета нашего прицела

то если размер костюма в операторах внешнего вида равен 150 то изменить значение Убито больших рыб на 1

если костюм равен сто ,то изменить убито средних рыб на 1, если размер костюма равно 80 ,то изменить значение убито маленьких рыб на 1 .

Можно вести количество очков ...

Например одна большая рыба равно 100,маленькая 50 и так далее.

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

Изменить убитых рыб поставить значение если убито больших то 200 если средних то 100 и если маленьких то 50 .И у вас будет общий подсчет очков.

Точно так же как делали оператор изменить Убито количество рыбок точно так же делаем переменную Очки рыбалки.

или например вместо количество рыбок модно писать количество очков.

Для дополнительных эффектов можно использовать оператор передать сообщение .

Например после сообщение изменить очки вы можете передать сообщение и использовать анимацию получение очков. Можно сделать это и через смена костюма.

Можно сделать Анимацию например выстрелов .Так как часто она нужна, то давайте сделаем. У нас будет гарпун на 6 стрел .

потому создаем переменную количество выстрелов что бы контролировать значения переменной. Когда флаг нажат то ставим задержку поскольку в этот момент мышка нажата ,потому ставим задержку пусть секунда. Задаем наше количество стрел равно 6 .Далее мы рисуем 6 стрел ,после чего делаем 5 спрайтов каждый раз на одну стрелу меньше ,и последний спрайт делаем пустым. И переходим в позицию где у нас устанавливается бое комплект. у меня это х-150 y-150 Меняем костюм на полный комплект ,после чего условия всегда .Если мышка нажата? и количество стрел больше нуля? то смена следующий костюм так как они расположены по порядку, старт звука стрелы и изменить значение количество стрел на минус одна. интервал задержки 1 секунда. Если же количество стрел меньше чем одна, то есть ноль ,то зададим условие если клавиша пробел нажата , то звук перезарядка,

## Штумоз™No

Изменить костюм снова на первый где 6 стрел ,задать количество равным 6.

теперь у нас будет анимироваться количество патронов. Но жто можно использовать и для количество жизни. Как полоска жизни . то есть когда у вас будет отниматься удар то просто будет уменьшаться шкала жизни -это типовой шаблон ,и их построение всегда практически шаблонные . Можно создать несколько готовых и подставлять в игры как значение снарядов или жизни.

Теперь у нас все работает кроме мелочи, У нас и дальше умирают наши рыбки .

Почему? потому что мы прописали условия только для данного спрайта..

Теперь нужно условие рыбкам, что бы если патроны равно ноль- то они не взаимодействовали с прицелом.

для этого меняем всего одну строку .

Мы дописываем в предыдущий блок когда я начинаю как клон еще одно условие. Когда касается цвета

и мышка нажата и дописываем и количество стрел больше нуля. Теперь если стрелы равно ноль- то рыбок убить нельзя. Ну вот игра готова . Добавим в нее таймер.

## Штумоз™No

Рисуем спрайт маленького кружочка. Мы сделаем отсчет времени клонами этих кружочков

Создаем переменную Время и устанавливаем значение ноль . Переходим в положение где оно будет удобно на экране у меня х -160 e 120 . поворачиваем в положение в верх условно на стрелки часов 12 ждем 1 секунду.

нам нужен таймер на 1 минуту тогда радиус круга равен 360 градусов. 60 делений круга это 6 градусов 60 раз.

Следовательно повторить 60 раз . создать клон самого себя

повернув наш спрайт каждый раз на угол 6 градусов. меняя каждый ход времени на 1 секунду.

после чего спрятать наш спрайт. Если время больше 59 то передать сообщение конец игры .

Мы можем теперь создать еще один спрайт.

Который когда наступит конец игры будет выводить сообщение .

Конец игры или время вышло.

тогда когда флаг нажат перейти в какое то положение и спрятаться.

А когда получу конец игры , то показаться и остановить все.

Вот у нас получилась простая игра.

Вы можете пробовать менять или задавать другие шаблоны

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

Так как в базе заложено взаимодействие со спрайтом. и перемещение спрайта. Таких вариаций не может быть выше чем 200 ,а оптимизационно не более 12 шаблонов.

Самих же игр на нем можно собрать больше 100 ,все это будут шаблонные игры и отличаться будут только реализацией, Художественным оформлением ,музыкальным сопровождением. Именно потому хороших игр мало ,так как большинство из них это копия аналогичных игр которые были до нас лишь с не значительными изменениями. Придумать что то новое очень сложное, и как правило как только оно будет придумано ,уже через месяц это будет растиражировано . Вот почему важно не рассказывать не кому что вы делаете до выпуска игры ,или Запатентовать новую механику . Сценарий и так далее от повторения.

## Штумоз™No

Это можно сделать написав сценарий письменно и оформив как литературное произведение или игровой сценарий. Что позволить вам защитить его . Так как автору принадлежит достаточно много прав, если вы знаете игру ведьмак . Польский писатель Анджей Сапковский, автор фэнтези-саги «Ведьмак», получил от студии CD Projekt RED, создателя игровой серии The Witcher, более 16 миллионов долларов в качестве отчислений от продаж видеоигр серии.

Потому это важно оформлять свои права на то что вы делаете .Поскольку с игр вы вряд ли что то заработаете, сегодня существует более 1000 игр отличного качества и они бесплатны .

Если вы хотите именно зарабатывать то вам проще получить денег с продажи сценариев если они интересны или с собственного магазина . Создать игру это пол проблемы, вторая половина в том что бы ее продать .И вот тут и важно что бы вся игра принадлежала вам это раз .А два заключается в монополии продажи игр . Для продажи существует всего несколько площадок. Магазин Google, Магазин Майкрософт и Apple Store ,а так же Steam все. То есть у монополистов способных изменять время на сайтах ,скрывать результаты поиска и делать что угодно в сети интернет . И если вы создадите что то что стоить хотя бы шестизначных цифр , то ваша вещь будет просто убрана с магазина за нарушения правил которые придумают. или без объяснения причин. Потому если вы хотите зарабатывать вам нужно будет еще создать магазин или договориться с отечественными операторами связи. Но их рынок намного меньше чем тот которые монопольный и принадлежащие всего 5-12 компаниям которые единолично контролируют этот бизнес. Другое дело если создавать приложения или Операционные системы, но даже в этом случае вряд ли вы выйдете на хорошую прибыль ,так как великие изобретатели умирали или в нищете или от не установленных причин. Например в сфере передачи электричество на расстояние без проводов, вы практически не найдете больше упоминание об инфразвуковом орудии которое уничтожает людей по площади и от этого нету защиты. Точно так же как и изобретения двигателей на воде, речь идет не о паровом двигателе, хотя бы я не списывала современные паровые двигатели со щитов. Поскольку паровые двигатели могут работать на солнце, просто на воде и солнце и многих других интересных идей.

Это было не большое отступление.

Дальше мы можем повторить еще один пример взаимодействие и перейти к следующим темам.

## Штумоз™No

____________________________________________________________

© Штумоз. Визуальное програмирование продолжение

Origin: http://samlib.ru/s/shtumozt/obnowlenie.shtml

Создан: 11/02/2019, изменен: 11/02/2019, 120k

Статья: Изобретательство