Штумоз: другие произведения.

Визуальное програмирование на скретчь

Журнал "Самиздат": [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь]
Peклaмa:
Конкурс фантастических романов "Утро. ХХII век"
Конкурсы романов на Author.Today

Летние конкурсы на ПродаМан
Открой свой Выход в нереальность
Peклaмa
 Ваша оценка:
  • Аннотация:
    это продолжение первой книг,вторая часть добавлены еще два примера. Книга уже почти на финальном этапе.В продолжение будут показаны просты примеры как делать программу смены одежды или причесок,потом смена оружия в играх, после чего будет конечный этап показ как работают таймеры и на этом книга будет закончена.после чего она будет редактироваться или не будет и останется в том виде что есть.Вместо этого будет выпущена упрощенная версия этой книги без пояснения рассчитана исключительно на визуальное восприятие для того что бы от этой книги можно было перейти к любому языку программирования адаптировав любой язык к визуальном программированию используя эту книгу как транслятор любого языка программирования. Планируется для удобства выложить книгу на диске для того что бы любой мог получить программу и примеры сразу с книгой .Не стоит ждать от книги многого Книга всего лишь черновик ,она не написано профессиональным автором или программистом. Более того Автор не планирует становиться программистом.Но она может быть полезна так как все коды рабочие, все были лично написаны автором в процессе обучения ,некоторые возможно не стандарты поскольку они были написаны исходя из знаний старых языков программирования таких как Паскаль или Фортран,но адаптированы под те инструменты что были в распоряжении.

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

 []

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

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

 []
 []
     
     
     
     
     
 []
 []
     
     
 []
     
     
     
     

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

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

Оглавление

     
     
     
     
     
     
     13. Виды игр .Не большие примеры создания простых игр.
     14.Как работает сражение? пример взаимодействия между спрайтами.
     15.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

Штумоз™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 компаниям которые единолично контролируют этот бизнес. Другое дело если создавать приложения или Операционные системы, но даже в этом случае вряд ли вы выйдете на хорошую прибыль . Это было не большое отступление.
     Рассмотрим еще один пример взаимодействия
      еще раз движение к точке или спрайту. Этот спрайт может быть не подвижным оружием которое расстреливает мобов или нашим игроком .
     Давайте сделаем случайное появление спрайта и движение его к определенной точке или спрайту
     
 []
     рисуем два спрайта один условно игрок второй спрайт условно зомби. Тогда когда флаг нажат мы можем задать Случайное положение ,всегда повернуться к второму спрайту, у нас он назван игрок, идти любое количество шагов у нас 5 шагов и задержка 1 секунда ее моно и не ставить .Так наш спрайт всегда будет повернут в сторону второго спрайта и двигаться в его направлении.
     
     Пусть тогда второй спрайт будет условно игрок в виде пушка , и поварачиваетсья в направление условно спрайта зомби .
     
     
     
     
     
     
     
     

Штумоз™No

     
 []
тогда Когда флаг нажат перейти в точку ноль в оси икс и игрек -что будет соответствовать центру и всегда повернуться в сторону спрайта зомби. Теперь игрок всегда будет смотреть в направлении зомби. А зомби будет всегда разворачиваться в сторону пушки и двигаться к ней.
     Так выглядит движение и направление.
     
 []
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
 []
Мы можем изменить код спрайта зомби на другой. Что бы спрайт не уппиралсья в другой спрайт можно сделать или колайдер и скрыть его ,то есть спрайт большего диаметра и задать ему не видимость, или просто остановить спрайт зомби на определенном расстоянии . Можно сделать это через блок если то ,то иначе и задать проверку параметра, или выполнять пока не.
     Мы сделаем повторить до того ,как . Когда флаг нажат, перейти в случайное положение повторять пока расстояния до спрайта игрок меньше 70 . Теперь мы может задать параметр что будет если расстояние достигло заданной точки. Если расстояние меньше 70 ,всегда водим параметр переменную здоровье изменить параметр здоровье игрока на минус один с интервалом 1 секунда. Задаем здоровье равно 100 ,Когда флаг нажат то здоровье равно 100.
     
     
     

Штумоз™No

     
     
 []
Сделаем теперь так что бы когда здоровье пушки равно ноль -то спрайт передал бы управление спрайту Игрока.
     Тогда когда флаг нажат, мы задаем значение нашего игрока -Пушка здоровье пусть 10 , и переходим в случайно положение. повернуться к игроку всегда идти 5 шагов с интервалом 1 секунда шаг. если расстояние меньше 70 ,всегда изменить жизнь игрока на минус один. и добавляем ,если здоровье игрока меньше 1 то передать сообщение Пушка уничтожена.
     так же мы можем добавить условие в этот спрайт.
     
 []
если касается спрайта игрок минус 10 шагов . Это условия нужно если наш спрайт сгенерирован на самом спрайте. Но можно изменить генератор вместо случайного положения дать диапазон. Так как тут возможен игровой баг в некотором положении спрайта зомби он не будет смотреть в строну спрайта игрок. Можно решить следующим образом .
     
 []
например установить игрек на 150 а игрек выдать случайно от минус 180 до 180.Это будет рандомное значение по одной стороне. После чего можно задать значения каждой стороне от 1 до 4. И выдавать положение рандомно по положению сторон. Это можно сделать так .
     
     

Штумоз™No

     
     
     
     
 []
Вместо перейти в случайное положение ,мы создадим генератор в диапазоне. Создадим свой блок. Создаем переменную сторона появления.
     у нас 4 стороны. Потому генератор от 1 до 4. по количеству сторон.
     тогда если сторона появления 1 то установить игрек 150 и установить икс рандом от -180 до 180.
     Если сторона 4 то минус игрек на 150 и точно так же зеркально от минус 180 до 180 по икс. В случае сторона 2 ,изменяем игрек от минус 180 до 180,а икс минус 140,а если сторона 3 то точная зеркальная копия , только х равно 140 , а игрек точно так же рандомно от -180 до 180.
     получаем случайный генератор сторон но уже с диапазоном который мы задали. что исключить появление в центре.
     
 []
можно применить конечно другую структуру. Но данная намного проще и понятнее и более надежна. После чего добавляем после того как флаг нажат , вместо значение перейти в случайное положение Задаем значение сторона появление равно ноль и добавляем наш блок с генератором появления .Теперь спрайт будет точно так же рандомно появляться ,но более предсказуемо и мы можем настроить как далеко спрайт зомби будет появляться от спрайта игрок ,что исключить появление спрайта прямо на спрайте, что может привести к багу программы в виде того что спрайт просто не сможет повернуться в сторону спрайта так как он может находиться в таком положении что программа прекратить работу.
     мы прописали спрайт зомби. Давайте пропишем спрайт пушки ,что будет когда она получить значение пушка уничтожена.

Штумоз™No

     
 []
У нас у пушки только два действия смотреть в сторону зомби и если пушка потеряет все жизни то она должна уничтожиться.
     Потому первое действие. Когда флаг нажат то показаться и перейти в центр то есть в ноль по икс и игрек. Всегда повернуться в сторону спрайта зомби.
     Второе действие когда я получу сообщение Пушка уничтожена, то говорить конец игры 2 секунды и спрятаться.
     Теперь давайте сделаем что бы пушка стреляла в зомби.
     Для этого нужно создать спрайт который будет выполнять роль снаряда или пули.
     
 []
Рисуем просто шар ,теперь пишем код. Когда Флаг нажат ,всегда перейти в игрок.
     Теперь добавим действие через взаимодействие.
     Перейдем в сенсоры возьмем когда
     
     
     пробел нажат и допишем.
     
 []
Если флаг нажат ,то всегда перейти в игрок ,повернуться в направления от игрока и если клавиша пробел нажата то повторять идти 10 шагов пока не касается края или не касается зомби.
     Клавишу пробел можно убрать . Вместо этого прописать если расстояние до зомби.
     
     Например если это игра башни ,то игрок может просто их расставить на поле, задав путь зомби вместо рандом, и тогда можно прописать что пушка будет реагировать на расстояние до зомби. Можно установить эту турель на звездолет или использовать в виде пета чуть переделав. Потому можно использовать автоматическое управление .

Штумоз™No

     
     
     
     
 []
Тогда это будет выглядит так . Спрятаться когда Флаг нажат, Всегда перейти в спрайт игрок, повернуться в направлении от игрока для того что бы наш выстрел был в сторону от спрайта, хотя можно сделать и по другому, но так проще. идти 30 шагов что бы отступить от центра спрайта. Если расстояние до зомби больше нуля то показаться и идти 10 шагов до тез пор пока не касается край или касается зомби или если здоровье больше 1. спрятаться.
     теперь Наш зомби доходя до пушки отнимает здоровье ,пушка стреляет уничтожается, осталось прописать что бы зомби тоже терял здоровье. Для этого нужно вести переменную здоровья зомби.
     
     Когда флаг нажат, Зададим Здоровье Зомби 50 ,после чего спрятаться. Все тоже самое что и ранее в первом коде спрайте. Всегда перейти в игрок, повернуться в направлении от игрока
     идти 30 шагов, если расстояние до зомби больше нуля то показаться, и идти 10 шагов пока не касается края, зомби или жизнь не меньше 1.
     Водим переменную если касается зомби то изменить жизнь зомби на минус один.
     Водим переменную если здоровье зомби меньше 1 ,то передать сообщение Зомби Уничтожен, спрятаться и остановить этот скрипт .
     
     Для зомби ,мы переходим в спрайт зомби и прописываем условие Когда я получу сообщение
     Зомби уничтожены, то стоп другие скрипты этого спрайта, Говорить победа 2 секунды, спрятаться, не забываем добавить когда влаг нажат ,то показаться. .
     Теперь можно добавить анимацию, звуки и это практически готовая игра. Достаточно сделать выстрел по пробелу ,задать случайное появление зомби и это готовая игра.
     

Штумоз™No

     
     
 []
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
 []
     
     
     
     
     
     
     
     

Штумоз™No

     
     Рассмотрим другой пример . для создания клонов. Как делается клонирование .У данной программы есть проблема ,она не видит клоны.
     То есть если мы начинаем как клон ,то нельзя задать направление в направление клона, как это делается со спрайтом .Возможно это и можно реализовать через базы данных, но это путь громоздкий длинный ,а потому это плохой путь. Если вы будете тратить больше день на код, то вы не когда не будете делать игры . Вы будете писать код, потом вы поймете что знаний мало и будете учить еще ,потом снова учить в итоге убьете 5 лет жизни что бы просто писать код ,потом по пол года будете писать код и переписывать так не чего и не сделав.
     Потому этот путь в не куда. Важно понять одно ,самый ценный продукт - это время. Его нельзя вернуть его нельзя купить ,потому лучше использовать время других людей(временем можно управлять, но сейчас эта разработка слишком далека от технологических возможностей людей) это более дешево. За последние три года развитие шагнуло вперед и развивается. Нам нет смысла потратить нашу жизнь на то -что бы потом заниматься кодингом и писать нудный код. Более того вам придется учить слишком много и все это -математика, а потом еще хуже так как это геометрия....А потом еще хуже поскольку это баллистика и так далее. У вас короткая жизнь. Из этой жизни у вас всего 30 лет относительной молодости ,а может и меньше. Молодость вы не сможете вернуть сколько богатств у вас бы не было . Вы можете набрать в гугле следующие имена .
     Пол Аллен всего 66 лет жизни- бессмертия так и не получил. Дэвид Рокфеллер прожил дольше - но конец тот же. 58-летний Игорь Минаков -ушел из жизни совсем молодым Алекс Спанос и другие. Все они конечно искали две вещи. Это вечная молодость и воскрешение из мертвых, вечная жизнь возможна, но не на этом техническом уровне. Тем более для этого нужно вырастить еще и сменный носитель информации или достичь контролируемую мутацию. Все это было еще при культе Осириса, но технология древних утеряна , хотя NASA до сих пор ищет и даже поняла что такое престол в библии(самое интересное что в ней нету тайного смысла каждое крыло ангела это измерение, а престол врата ,древние люди не могли описать волновую теорию, потому изобразили игру на инструментах, и касательно генной инженерии там все описано правильно прямым текстом, проблема в том что это не перво источник ,более раним был как раз культ Осириса,это лишь потверждает что люди скорее всего переселенцы с Фаитона данные комментарии личное мнение автора, так как автор не верить что люди стали вдруг работать сами по себе и готовить и есть пищу им не присущую, исходя из тех племен что сохранились мы видим что развития племена жившие вне цивилизации не получили и мы для них боги, на это указывает и феномен дети маугли, людей кто то научил или они получили знания, и скорее всего люди созданы искусственно, это теория подтверждается сбоем ДНК из расчета 2%. иметься веду оба пола в одном человеке как раз та погрешность около 1-2% что доказано научно и на этом основана одна моя теория я отталкивалась от физики разрабатывая эту теорию ,и лично я как раз считаю что измерений не 4 ,а 6 или более ). Тем не менее даже миллиарды не помогли людям что бы жить бесконечно долго -они пошли не тем путем, хотя многие технологии достаточно близки к этому. Это я к тому -что Все институты занимаются обманом и заработком. Сами знания можно получить за пару месяцев максимум трех хватить. Но это заработок. Если вы хотите зарабатывать ,а не делать игры например или программы -откройте платные курсы курсы -это самый хороший заработок вы будете получать не менее 5000 долларов. Вам даже не нужно обладать знаниями что бы организовать такие курсы, проблема что таких курсов достаточно много, поскольку это легкие деньги. Сколько я помню у нас даже в школе не было учителя который бы разбирался в программирование, но это не мешало им преподавать. учителя не могли дать ответы, все это собиралась по крупицам и мне тогда помогла книга Фигурнов 6 тое издание. Книг было много, а знаний практически не было как и учителей.
      Штумоз™No
     это я чуть отступила от темы.
     Этот текст можно не читать. Его суть -время бесценно, так как его нельзя купить ,а что бы изменить его ход- нужно просто огромные ресурсы.
     Потому нет смысла тратить время на то -что не дает нам прямых знаний, готовых решений, без нужного процесса сложных расчетов. Поскольку все программы написаны не раз ,описывать одни и те же функции на более десяти языках. Вместо создать 200-300 шаблонов и дать работать ими кому угодно не затрачивая время на лишние изучение. Ну не люблю я математику, геометрию. Ну не дам я денег не за курсы не за институт ,и не хочу тратить 5 лет что бы кто то стал богаче. Математиков в стране без меня много. Программистов тоже -а вот продуктов для потребителей так и нету.
      за 10 лет существования визуального языка, никто даже не смог сделать игровой движок на базе того же Скретч ,что было бы востребованным продуктом, программистов много , пользы от них нет. Всего то и нужно добавить Палагины языков программирования, стол сделать настраиваемым и сделать сохранение файлов в форматах *.exe ,*.apk , флеш .
      вернемся к клонам.
     Проблема программы что взаимодействие с клоном -отличается от взаимодействия от объекта. потому если есть возможность то лучше делать через спрайт. Но во многих играх можно применять и клонирование.
     Клон можно применять так же для рисования.
     Допустим нам нужно нарисовать звездное небо. Скажем поставить 500 точек в произвольной форме -тихий ужас да? делается это очень просто
     
 []
     заливаем фон просто черным цветом. потом рисуем спрайт звезды просто желтая точка.
     Когда флаг нажат ,повторить 500 раз перейти в случайное положение ,создать клон самого себя.
      Мы получим всего за пару секунд -звездное небо.
     Теперь клонирование объекта. На самом деле мы можем взять всего одни спрайт и задать ему перемещение в свободном направлении, но у клона есть преимущества нам не нужно рисовать несколько спрайтов и каждый клон будет вести так -как запрограммирован спрайт .Как правило используется когда нужно создать армию зомби или большое количество мобов.
     
 []
например мы могли бы сделать так ,нарисовать какой то шар , и когда флаг нажат ,перейти в случайное положение всегда с интервалом времени секунда.
      Потому отследить положение спрайта можно по место положению.
     
     Сделаем шар и сделаем клон шара с случайным появлением. Нарисуем спрайт шар а теперь создадим его случайное положение.
     
     
     
     
     
     
     

Штумоз™No

     
 []
когда флаг нажат, всегда создать клон самого себя ждать выдать случайное число от 1 до 3. Теперь когда флаг нажат клоны будут создаваться с частотой от 1 до 3 секунды.
     теперь пропишем условия когда я начинаю как клон .Нам нужно что бы спрайт спрятался перешел в какое то значение и там появился.
     Данный код шаблонный для создания клона .
     Когда я начинаю как клон то Спрятаться, установить высоту по игрек например 150 ,и выдать случайное значение икс координат от минус 200 до 200. Показаться.
     
     
 []
теперь Если нажать на флаг ,тоу нас будут появляться клоны в случайном месте на
     
     высоте по игрек 150 .
     Данный код не очень удачный поскольку в некоторых местах будет наложение клона на клон или слишком кучно расположены клоны ,потому мы можем разбить на сектора ,так как делали это ранее и каждому сектору назначить значение 1,2,3,4,5 присвоить значение координат для каждой цифры и выдавать генератор от 1 до5 и точка появления будет в заданном нами секторе. Что визуально будет красивее, но код чуть более длинный. Если мы зададим значение изменить игрек всегда на минус один то все клоны будут двигаться вниз.
     
 []
 []
     
     
     
     
     
     
     но нам нужно что бы достигая края они исчезали.
     потому вместо оператора всегда мы используем выполнить пока не выполнено условие, то есть повторить до того как . не коснется края и если касается то удалить клон.
     Мы получили готовый код таких спец эффектов как снег в игре если шар изменить на снежинки, или дождь если изменить на капли. Или космические корабли летящие сверху вниз, или препятствия для машины которая едет верх .Это типовой шаблон. Его можно написать один раз и использовать для 1000 разных игр . Можно так же прописать более точные места переменных появления. Чуть изменив код можно получить частицы даже для костра и других спец эффектов. Все зависит от вашей фантазии.
     

Штумоз™No

     
     
 []
     
     Этот же код можно использовать в мини игре сбор монет. Тогда вместо шара рисуем спрайт монет ,внизу делаем человечка или тележку и собираем эти падающие монеты.
     Для этого нужно всего лишь добавить условие если касается тележки то +10 очков, и перемещение спрайта тележки. Это сделать очень легко. Просто дописав в этот же код если касается тележки и вести переменную Очки. Добавить таймер 1 минута и игра готова. Как видим всего на одном шаблоне можно построить много разных игр.
     Но данный пример клонов Я хочу рассмотреть именно для определения их место положения. Сделать это нужно без списка и сложных действий. Как этого достичь?
     нужно запоминать их место положение. Давайте создадим еще один спрайт и назовем его снаряд. И сделаем так что бы он появлялся в точке появления нашего клона.
     для этого сделаем переменные для значения Х и Y . Пусть будет снаряд икс и снаряд игрек.
     
 []
добавим еще условие когда я начинаю как клон ,Всегда выполнять условие небольшая задержка 0.2 секунды, Задать переменой снаряд У положение игрек, задать снаряд Х значение положение Х создать клон снаряд.
     теперь с задержкой 0.2 секунды мы будем создавать клон снаряд в точках положения Х и У . теперь мы можем отслеживать положения клона. Так как каждый клон создает снаряд, каждые 0.2 секунды и через переменную можно запоминать место положение. Время можно изменить на любое оно влияет на появление и скорость создание клона ,его можно подобрать визуально.
     Теперь нужно прописать переменную для клона снаряда.
     Нужно что бы он спрятался, после чего появился в нужной нам точке. Изменил положение касательно шара чуть ниже самого шара, И изменил положение пока не коснется края.
     
 []
     Тогда, когда флаг нажат спрятаться, Когда я начинаю как клон ,спрятатсья,перейти в икс, где икс равно переменная снаряд икс, а значение переменная снаряд игрек равна игрек. изменить положение относительно клона противник на минус 50 по оси игрек, путем изменить значение игрек на минус 50,спрятатсья.
     

Штумоз™No

     
 []
Теперь у нас в каждом месте появления клона будет появляться клон снаряда. но будет оставаться там не подвижно . Мы можем задать движение . Для этого мы добавим значение повторить до того как коснется край изменить игрек на минус 2,после чего как условие будет выполнено -удалить этот клон.
     Теперь визуально это выглядит так как если бы каждый шар стрелял. Мы решили простую задачу
     по определению клонов путем нахождения их по оси координат через значение переменных.
     Давайте добавим еще один спрайт игрок шар другого цвета.
     и сделаем перемещение его вправо и влево.
     Для этого рисуем спрайт или выбираем готовый или загружаем свой.
     после чего прописываем условия что бы сайт перемещался вправо и влево. Спрайт назовем игрок. Когда флаг нажат, то перейти в икс ноль, игрек минус сто пятьдесят
 []
.
     всегда если клавиша стрелка вправо нажата? то идти 10 шагов, если клавиша влево нажата? то идти минус 10 шагов .
     теперь у нас есть управляемый спрайт.
     нужно изменить условия для клонов, что бы если они касаются спрайта то клон удалялся. Для этого мы добавляем всего одно изменение
     
 []
и в клон противника дописуем касается края и игрока, а так же делаем такое же изменение в спрайте кода снаряда меняем строку повторять до того как касается края условием или не касается Игрок.
     Таким образом клоны будут исчезать когда касаются края и нашего спрайта игрок.
      теперь можно задать переменную что если столкновение с снарядом или шаром то минус значение переменной.
     Мы просто водим как и ранее по шаблонам условие что если касается точно так же как касается спрайта то отнимается значение переменной.
     Для это мы Создадим переменную Запас Жизни и будем отнимать ее при столкновении с клоном шара противника или касанием клона снаряда. При касается противник минус 500 и касается снаряда минус 10 .
     
     Для этого после значения управления мы допишем еще код. После того Как флаг нажат мы добавим Переменную Задать переменную Запас жизни значение 1000.
     
     
     

Штумоз™No

     
 []
После чего перейти как и раньше в нужное значение координат. Оставляем без изменение управление спрайтом. Дописываем следующее условие Если касается снаряд то изменить Запас жизни на минус 10.
     
     Если касается противника то на минус 500 .
     и Если запас Жизни меньше 1 ,то говорить конец игры 2 секунды и остановить все. Вместо этого можно добавить условие передать сообщение Конец игры и установить правила что будет происходить если наступил конец игры .
     Значение меньше 1 подразумевает ноль .Так как у нас значение может зайти в значение минус, потому логично выбрать именно такой вариант .
     У нас получилась мини игра где Игрок должен уклониться от условных противников которые по нему ведут условный огонь.
     Давайте добавим возможность вести ответный огонь по противнику.
     Для этого как и раньше создаем спрайт пули.
     Рисуем тоже шар и назовем спрайт пуля.
     
     
     
     
     
     
 []
     
     Тогда код будет такой.
     
     Спрятаться, всегда перейти в игрок изменить положение на 30 по игрек и если клавиша пробел нажата показаться, повторить пока не коснется края или противник изменить игрек на 3 после чего спрятаться.
     Теперь игрок может тоже вести огонь по противнику. Есть не достаток. Это будет очень медленно потому что пока спрайт не коснется края или противника он не появиться при нажатие на пробел.
     Потому мы сделаем это тоже через клон пули.

Штумоз™No

     Мы чуть изменим наш код .Когда флаг нажат, то всегда, если клавиша пробел нажата
     ждать 0.3 секунды, создать клон самого себя.
     
 []
     Когда я начинаю как клон ,показаться, Перейти в игрок изменить игрек на 30 повторить до того как касается край или касается противник изменить игрек на 3,после чего спрятаться и удалить клон. Можно просто удалить клон.
     Теперь вы можете задавая временной интервал
     задержки пробела регулировать скорость стрельбы.
     
     Теперь осталось изменить код Клона противника.
     
 []
     для этого в клоне Противник нужно добавить лишь одно значение что если касается края, или Игрока и дописать Или пуля.
     
     Конечно можно вести условие что пуля будет отнимать не все здоровье, это делается путем ведения переменой Здоровье клона . тогда если касается пуля то минус какое то значение и если значение равно нулю то спрятаться . Можно добавить анимацию и музыку ,будет готовая игра. Наша задача понять только принцип как это работает ,что бы делать любую игру или программу. Все работает практически одинаково, любая игра будет копией точно такой же сделанной ранее, но это не страшно парадокс заключается в том что из 1000 одинаковых по функционалу игр , построенных по типовому шаблону ,одну игру выбирают все, а про другие мало кто даже знает. Важно понять что нужно потребителю в конкретный момент времени. Нужно узнать все слабости потребителя услуг , его психологические зависимости и только потом делать игру. Наиболее продаваемая та игра- которая максимально использует человечески слабости, инстинкты, влияние на подсознание ,азарт, привязанность, вырабатывание инстинктов типичный пример поощрение за вход в игру и проведеные хотя бы 20 минут в игре даже если игрок не чего не делает. Материнский инстинкт или отцовский ,это ведение пета или игрового персонажа максимально эмитирующих поведение детей , вызывая инстинктивные чувства. Удачное решение когда то была игра тамагочи, где вам предлагали вырастить игрового питомца. Оно было своевременно стоило не дорого, потому получило массовое распространение. потому важно следить что популярно в той или иной среде игроков в настоящие время.

Штумоз™No

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

 Ваша оценка:

Популярное на LitNet.com В.Соколов "Мажор: Путёвка в спецназ"(Боевик) К.Федоров "Имперское наследство. Вольный стрелок"(Боевая фантастика) A.Влад "В тупике бесконечности "(Научная фантастика) Е.Мэйз "Воровка снов"(Киберпанк) О.Дремлющий "Тектум. Дебют Легенды"(ЛитРПГ) Р.Цуканов "Серый кукловод. Часть 1"(Киберпанк) А.Емельянов "Мир Карика 9. Скрытая сила"(ЛитРПГ) Ю.Резник "Семь"(Антиутопия) Р.Цуканов "Серый кукловод. Часть 2"(Антиутопия) Н.Александр "Контакт"(Научная фантастика)
Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
Д.Иванов "Волею богов" С.Бакшеев "В живых не оставлять" В.Алферов "Мгла над миром" В.Неклюдов "Спираль Фибоначчи.Вектор силы"

Как попасть в этoт список
Сайт - "Художники" .. || .. Доска об'явлений "Книги"