background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Coding Platformer Enemies | 11. Scratch Platformer Tutorial"

input logo icon
Теги видео
|

Теги видео

scratch coding
scratch programming
scratch game
Enemy AI
scratch ai enemy
scratch 3
griffpatch
scratch coding games
scratch
block coding
Splash Screen
scratch tutorial
how to make a game in scratch
how to make game in scratch
scratch tutorials
scratch games
scratch enemies
Enemy
scratch enemy ai
how to scratch
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:02
привет, друзья-скрэтчеры, какой лучший способ
00:00:05
улучшить наши классические платформеры, чем
00:00:07
вводить в бой врагов? Вы
00:00:09
можете узнать этого маленького красного грызуна
00:00:11
из моей игры с яблоками. Самое
00:00:13
замечательное во врагах то, что в отличие от
00:00:15
шипов или лавы враги, как правило, намного
00:00:17
более динамичны, принося уровень для жизни,
00:00:19
а также требует больше навыков, чтобы уклоняться
00:00:22
или уничтожать,
00:00:24
поэтому мы добавим простое движение появления врагов,
00:00:26
перемещение под действием силы тяжести и,
00:00:29
наконец, возможность раздавить врага,
00:00:31
прыгнув ему на голову, действительно классические вещи,
00:00:33
так чего же мы ждем давайте
00:00:37
поцарапать, мы начнем с того места, где
00:00:39
остановились в эпизоде ​​​​10, сохранив наш проект как
00:00:42
новую копию, поскольку это эпизод 11.
00:00:47
поэтому я думаю разместить первого врага
00:00:49
здесь, в первой сцене,
00:00:52
лучше всего будет создать новую спрайт для
00:00:54
врага, и я назову его врагом, это имеет
00:00:57
смысл
00:00:59
для развлечения, я рисую маленького красного врага,
00:01:02
чувака из яблока, начну с рисования
00:01:05
простого квадрата,
00:01:06
теперь мы можем проверить, что размер хорошо смотрится на
00:01:08
сцене,
00:01:10
и мы также можем перетащить их в
00:01:11
подходящее пространство, пока мы этим занимаемся,
00:01:13
когда вы создаете врага, не забывайте
00:01:16
всегда рисовать его лицом вправо,
00:01:19
даже если вы хотите, чтобы он смотрел влево или
00:01:21
вращался, чтобы лететь вверх, на самом деле это не имеет
00:01:22
значения, мы все равно всегда рисуем его лицом вправо.
00:01:27
затем, как только вы их нарисуете, просто
00:01:30
дважды проверьте, что костюм находится по
00:01:31
центру холста. Я делаю это,
00:01:34
выбирая все это, а затем
00:01:36
перетаскивая их в середину, где они
00:01:38
должны просто защелкнуться на месте. Там вы
00:01:40
увидите, не центрирован ли ваш костюм по центру.
00:01:43
редактор костюмов, затем его положение и
00:01:45
распознавание столкновений сбиваются,
00:01:48
что, в свою очередь, приводит к ошибкам позже, поэтому вы
00:01:50
действительно хотите правильно освоить этот шаг центрирования,
00:01:54
давайте дадим этому вражескому костюму
00:01:57
имя красное,
00:01:59
я использую одно, потому что дальше мы собираемся
00:02:01
чтобы добавить больше костюмов для простой
00:02:03
анимации врагов, я хочу, чтобы они открывали и закрывали
00:02:06
рот,
00:02:07
поэтому продублируйте один красный костюм, и теперь у нас
00:02:10
есть два красных,
00:02:11
выберите всю верхнюю половину
00:02:13
костюма, поверните его и верните на
00:02:16
место,
00:02:17
хорошо,
00:02:18
затем мы делаем то же самое снова дублируем
00:02:20
два красных
00:02:21
и расширяем рот еще раз
00:02:24
блестяще,
00:02:25
чтобы завершить анимацию, нам нужно, чтобы
00:02:26
рот начал закрываться еще раз.
00:02:29
Самый простой способ добиться этого — обмануть
00:02:31
и снова продублировать костюм 2, перетащив
00:02:34
его в конец списка, теперь мы
00:02:36
анимируйте костюмы в порядке
00:02:38
от закрытого к открытому, а затем
00:02:41
снова начинайте закрывать, готовые вернуться
00:02:43
к полностью закрытому, а затем повторить,
00:02:47
отлично, нам просто нужен еще один костюм,
00:02:50
и это на случай, когда красный будет раздавлен,
00:02:53
дублируйте первый костюм и перетащите его. вниз
00:02:55
списка,
00:02:57
я думаю, нам следует назвать его красным хлюпающим,
00:03:01
а затем просто сгладить костюм,
00:03:03
выбрав все это и перетащив
00:03:05
сверху вниз, это гарантирует, что нижняя часть
00:03:07
не поднимется над землей,
00:03:09
вы также можете вытащить
00:03:11
боковые стороны немного, чтобы придать более сжатый
00:03:13
вид,
00:03:14
если вы удерживаете клавишу Alt во время
00:03:16
перетаскивания, тогда он увеличивается в размерах примерно посередине,
00:03:19
что очень полезно, здесь
00:03:21
супер правильные костюмы готовы, пришло время
00:03:25
немного кодировать,
00:03:26
мы использовали несколько методов для создания
00:03:28
спрайтов в игру предметы коллекционирования
00:03:31
были клонами, которые мы создавали по
00:03:33
всему уровню в самом начале,
00:03:35
подъемники и спрайты опасностей, ну, они
00:03:37
не были клонами, а вместо этого имели один
00:03:39
спрайт, который мы повторно использовали в каждой сцене,
00:03:41
где это необходимо,
00:03:43
но для врагов мы сделаем что-то снова
00:03:45
немного по-другому,
00:03:47
используя клонов, которые позволили бы нам иметь
00:03:49
более одного врага на сцену, мне
00:03:51
это нравится, но чтобы избежать создания множества
00:03:53
клонов и любых накладных расходов, которые могут
00:03:56
принести, они будут порождать их только при необходимости
00:03:59
и снова исчезать, когда мы покидаем
00:04:01
сцену
00:04:02
поэтому, как обычно, при работе с клонами
00:04:05
исходный спрайт должен быть скрыт
00:04:07
при нажатии флага.
00:04:09
Скрыть,
00:04:10
давайте поработаем над появлением врагов, они
00:04:13
появятся, когда мы входим в сцену, поэтому,
00:04:15
когда я получу сцену изменения,
00:04:19
затем проверьте, в какую сцену мы вошли, если
00:04:21
сцена равна единице,
00:04:29
хорошо, так что игрок вошли в первую сцену,
00:04:32
мы хотим клонировать нового красного врага,
00:04:35
перетащите его и перейдите к блоку xy,
00:04:38
окей, подождите, я действительно хочу переместить
00:04:40
их дальше вправо, вот
00:04:42
теперь удалите этот блок и перетащите новый,
00:04:46
таким образом, все настроено с помощью значения x и y
00:04:48
для следующей новой позиции,
00:04:51
мы хотим смотреть влево с
00:04:54
точкой в ​​отрицательном направлении 90.
00:04:57
круто, это основы, поэтому мы можем пойти
00:05:00
дальше и создать свой клон,
00:05:03
который будет гарантировать, что новый клон будет
00:05:04
создан в позиционированном и ориентирован так,
00:05:07
как мы хотим, но, как и исходный
00:05:09
спрайт, он тоже станет скрытым,
00:05:13
легко исправить, внесите, когда я начну как
00:05:16
блок шляпы-клона,
00:05:18
и покажу
00:05:21
красиво и просто, давайте проверим,
00:05:24
просто нажмите «играть», о,
00:05:26
чувак, что за
00:05:28
красный, что ты делаешь перевернутый человек,
00:05:31
очевидно, что режим вращения этого
00:05:34
спрайта установлен неправильно, мы
00:05:36
решим эту проблему в разделе, когда нажат зеленый флаг. Всплывает
00:05:38
шляпа
00:05:40
в установленном режиме вращения
00:05:43
влево-вправо,
00:05:45
что должно остановить появление спрайта в
00:05:46
перевернутом виде и ограничить его только
00:05:49
переворотом влево. и да,
00:05:51
ладно, намного лучше, спавн врагов
00:05:54
работает, но если мы перейдем к следующей
00:05:56
сцене,
00:05:57
ах, враг все еще здесь, нам нужно
00:06:00
убедиться, что мы снова исчезаем, когда мы покидаем
00:06:03
сцену,
00:06:06
теперь у нас есть несколько вариантов, как
00:06:08
это сделать у нас уже есть
00:06:11
событие изменения сцены, которое срабатывает, когда
00:06:14
мы покидаем сцену и входим в новую,
00:06:16
но чтобы все было действительно ясно и легко
00:06:19
отслеживать, я предлагаю добавить новое событие,
00:06:22
которое запускается перед этим, чтобы покинуть
00:06:24
сцену
00:06:26
для этого, мы следует щелкнуть по спрайту игрока,
00:06:30
и нам нужно найти сценарии определения начала
00:06:32
сцены.
00:06:34
Здесь мы транслируем
00:06:36
событие изменения сцены.
00:06:38
Теперь нам нужна еще одна трансляция перед
00:06:40
этой, поэтому отделите блок остановки,
00:06:43
продублируйте трансляцию и затем соедините все это
00:06:46
вместе. мы изменим
00:06:49
первую трансляцию, чтобы отправить новое
00:06:51
сообщение,
00:06:53
теперь, оглядываясь назад, я думаю, что лучшее название
00:06:55
для этого могло бы быть сцена ухода или выхода,
00:06:58
но я дал ему имя,
00:07:01
чтобы изменить сцену, конечно, это
00:07:03
действительно не имеет значения, но сделайте не стесняйтесь
00:07:05
называть его как хотите,
00:07:07
хорошо, так что вернемся к спрайту врага,
00:07:10
теперь мы можем добавить его, когда я
00:07:13
собираюсь сменить сцену,
00:07:15
и удалить все вражеские клоны
00:07:17
теперь легко, просто удалите этот клон,
00:07:21
круто,
00:07:22
теперь событие начала сцены может безопасно бегите,
00:07:24
и все должно быть хорошо,
00:07:26
давайте проверим,
00:07:31
да, вражеские клоны исчезли,
00:07:35
и что
00:07:37
дальше, этот враг выглядит немного летучим,
00:07:40
давайте добавим немного гравитации, чтобы сбить
00:07:42
его на землю,
00:07:44
убедитесь, что мы все еще находимся в
00:07:46
спрайте врага и будем продолжить кодирование в
00:07:49
сценарии if start as clone,
00:07:51
им нужен собственный небольшой игровой цикл, поэтому
00:07:54
добавьте блок навсегда
00:07:56
для гравитации, нам нужна переменная скорости y,
00:07:59
сделайте ее только для этого спрайта, поскольку каждому
00:08:01
клону нужна своя собственная скорость,
00:08:04
инициализируйте скорость y до нуля
00:08:07
непосредственно перед этим Вечный цикл начинается с
00:08:11
гравитации, это просто постоянная сила,
00:08:14
тянущая вниз, поэтому мы меняем нашу скорость
00:08:16
y на отрицательную единицу каждый игровой
00:08:19
такт, а
00:08:21
затем фактически перемещаем врага с
00:08:23
изменением y
00:08:25
и уменьшаем переменную скорости y, да,
00:08:28
вы это увидите миллиард раз во всех
00:08:30
наших играх, но этого недостаточно, как будто
00:08:33
прямо сейчас падающий враг падает
00:08:35
прямо через тот уровень, который нам нужен, чтобы
00:08:37
остановить его, но поскольку его подъем с
00:08:39
пола требует небольшого дополнительного цикла,
00:08:42
нам понадобится этот специальный блок магия создайте
00:08:45
новый пользовательский блок, назвав его, переместите
00:08:48
вниз,
00:08:49
и да, отметьте блок запуска без
00:08:51
обновления экрана, он нам нужен, хорошо, мы
00:08:55
переместим код гравитации в этот новый
00:08:57
пользовательский блок и заменим его движением
00:08:59
вниз,
00:09:00
отлично,
00:09:01
так что теперь,
00:09:03
если после перемещения врага вниз здесь мы
00:09:05
обнаруживаем, что мы перекрываемся, то есть касаемся
00:09:08
уровня, который мы хотим снова переместить врагом
00:09:11
вверх, пока он не коснется
00:09:13
уровня.
00:09:15
Самый простой способ сделать это - повторять
00:09:17
до тех пор, пока не заблокируем, и мы повторяем до тех пор, пока
00:09:20
не перестанем касаться
00:09:23
уровня,
00:09:25
хорошо, так что после того, как мы переместились вниз, если они
00:09:28
не касаются уровня, то этот
00:09:30
повтор даже не запускается,
00:09:33
но если они есть, то мы неоднократно
00:09:35
меняем y на единицу, чтобы поднять их до тех пор, пока
00:09:39
они снова не перестанут касаться
00:09:41
уровня,
00:09:42
мило, нам просто нужно сбросьте полную
00:09:44
скорость, установив их скорость y на ноль,
00:09:48
и все, тестирование проекта теперь
00:09:51
показывает, что враг хорошо заземлен,
00:09:54
если я вернусь к представлению проекта, тогда я
00:09:56
могу перетащить их, и они всегда
00:09:58
падают обратно на землю, отлично, мы
00:10:00
готовы на
00:10:02
самом деле двигаться дальше - это именно то, что мы
00:10:04
хотим, чтобы этот враг делал, поэтому новый пользовательский
00:10:07
блок для этого соответствует перемещению вниз на
00:10:09
одно имя, он перемещается
00:10:11
влево и вправо,
00:10:13
тикает, чтобы работать без обновления экрана,
00:10:16
и было бы лучше использовать это
00:10:18
перед блоком перемещения вниз, я думаю,
00:10:22
поэтому, предполагая, что враг смотрит влево или
00:10:25
вправо, давайте воспользуемся блоком перемещения
00:10:28
и продвинемся на два шага вперед,
00:10:31
затем проверим наличие столкновений,
00:10:34
возможно, мы врезались в стену справа, поэтому, если мы
00:10:37
коснемся
00:10:38
уровня,
00:10:40
мы выйдем обратно из стена с
00:10:42
ходом минус два шага минус два шага,
00:10:46
а затем мы просто разворачиваем их, чтобы
00:10:48
идти в противоположном направлении, поворачиваем по
00:10:50
часовой стрелке на 180 градусов,
00:10:53
время испытаний, вот и мы идем, враг
00:10:56
идет в ту сторону, они ударяются о стену,
00:10:59
разворачиваются и уходят, и о,
00:11:02
они, кажется, дуются на краю
00:11:04
уровня, как одна из моих домашних сумок, они
00:11:07
также зарывают головы в землю и
00:11:09
притворяются, что их там нет, да, мы видим
00:11:11
тебя красным,
00:11:13
ну, мы также можем выбрать здесь, чтобы сделать одно из двух
00:11:15
вещей они уходят с экрана
00:11:18
или поворачиваются и возвращаются,
00:11:20
я говорю, что мы разворачиваем их, поэтому вместо того, чтобы
00:11:23
просто проверять уровень касания, нам нужен
00:11:25
блок руды, а также проверять касание
00:11:28
края, который является краем экрана
00:11:32
теперь, когда мы тестируем игру
00:11:34
враг также поворачивается, когда достигает
00:11:36
края экрана, слишком
00:11:38
идеально, это выглядит очень хорошо, но
00:11:41
вы знаете, что часто, когда вы рисуете уровни на
00:11:43
царапинах, поверхности не идеально
00:11:46
прямые, и если бы я хотел добавить
00:11:49
небольшой выступ на уровень,
00:11:51
я думаю, мы бы это нашли. что врагу можно
00:11:53
слишком легко помешать,
00:11:57
что нам нужно сделать, это дать ему
00:11:59
немного подъемной силы, чтобы преодолеть
00:12:00
эти небольшие препятствия, но при этом
00:12:03
развернуть его при ударе о стену,
00:12:05
мы можем начать с отделения
00:12:07
сценария if touching
00:12:09
сейчас вместо этого мы дадим противнику
00:12:12
несколько попыток выбраться из пола,
00:12:14
прежде чем сдаться и развернуться на
00:12:16
хороший блок, потому что это повторяющийся блок,
00:12:19
и я собираюсь повторить четыре раза,
00:12:23
но подождите, мы даже не просили если мы
00:12:25
действительно столкнулись, но нет
00:12:28
проблем, мы делаем это первым делом внутри
00:12:30
этого повторяющегося цикла,
00:12:32
если
00:12:33
нет,
00:12:34
то возвращаем сюда проверки касания,
00:12:36
если мы переместились в сторону и
00:12:39
не касаемся уровня или края
00:12:41
экрана, тогда мы не делаем этого. хотите
00:12:44
что-нибудь сделать,
00:12:45
поэтому просто остановите этот скрипт.
00:12:47
Видите, не имеет значения, что мы
00:12:49
вошли в этот повторяющийся блок, мы все равно
00:12:51
остановим выполнение этого движения и оставим блок
00:12:53
здесь, и все готово,
00:12:55
но если мы касаемся уровня, мы
00:12:58
можем попробовать переместить y на один, чтобы выбраться со
00:13:02
склона
00:13:03
и это теперь даст нам четыре попытки, если
00:13:06
в какой-то момент ему удастся выбраться из
00:13:08
уровня, то скрипт останавливается и
00:13:10
все в порядке, не нужно оборачиваться, это был
00:13:13
просто склон,
00:13:14
но
00:13:15
если враг все еще касается уровня
00:13:17
после четырех попыток перемещения вверх, тогда мы
00:13:19
сдаемся, это слишком сложно, чтобы враг мог
00:13:21
обойти, нам нужно убедиться, что мы
00:13:23
возвращаем их обратно на четыре пикселя, поэтому
00:13:26
измените y на отрицательные четыре,
00:13:29
а затем мы возвращаем движение минус
00:13:31
два шага и поворот на 180 градусов, который
00:13:34
развернет врага, как и прежде,
00:13:36
отлично, это имеет смысл, не так ли,
00:13:39
давайте протестируем, о
00:13:42
да, очень круто и плавно, они
00:13:45
прекрасно скользят вперед и назад, и эта
00:13:47
маленькая неровность на дороге нас не смущает
00:13:49
с любыми проблемами все
00:13:51
отлично, поэтому после завершения движения мы можем
00:13:57
теперь сосредоточиться на анимации, если бы мы просто начали переключать
00:13:59
костюмы врагов, мы бы сразу же
00:14:01
столкнулись с той же старой проблемой
00:14:03
столкновений спрайтов, возникающих из-за изменений в
00:14:06
размере и форме костюма,
00:14:08
теперь это потому, что в
00:14:10
настоящее время мы не используем хитбоксы для врагов,
00:14:12
поэтому столкновения выполняются с использованием
00:14:14
текущего костюма врага. Нам нужно
00:14:17
убедиться, что при обнаружении столкновений
00:14:19
соприкасающиеся блоки всегда используют один и тот же
00:14:21
костюм, поэтому давайте начнем с обеспечения того, чтобы
00:14:23
это было так
00:14:25
в начале вечный цикл, прежде чем
00:14:27
мы переместим врага,
00:14:29
переключим костюм на красный
00:14:32
теперь, потому что наш враг квадратный, мы могли бы
00:14:35
просто использовать это как наш хитбокс, но
00:14:37
вы могли бы, если хотите, нарисовать для этого новый костюм,
00:14:41
теперь мы также должны установить режим вращения
00:14:43
не вращаться, потому что, если вы помните,
00:14:46
даже изменение направления
00:14:48
костюма может вызвать те же
00:14:50
проблемы с изменением хитбокса, мы не хотим, чтобы
00:14:52
они всегда были обращены вправо,
00:14:55
поэтому после перемещения игрока в каждом кадре
00:14:57
мы сбрасываем режим костюма и вращения
00:15:00
на какими они были до красного
00:15:02
и левого и правого режимов,
00:15:05
хорошо выглядят, разумно, так что теперь что касается анимации,
00:15:09
поскольку мы всегда переключаем костюм
00:15:11
обратно на красный для
00:15:13
обнаружения столкновений, нам нужно будет отслеживать
00:15:15
текущий кадр анимации каким-то
00:15:18
другим способом,
00:15:19
сделайте новая переменная с именемframe для этого
00:15:22
спрайта, только
00:15:24
мы инициализируем фрейм равным нулю, прежде чем начнется
00:15:27
наш вечный цикл,
00:15:29
а затем нам нужно будет изменить кадр, чтобы
00:15:32
анимировать костюмы,
00:15:35
поместите его непосредственно перед тем, как мы снова переключим костюм
00:15:37
на красный здесь
00:15:39
но вместо того, чтобы добавлять один, давайте
00:15:41
замедлим анимацию до одного раза в три
00:15:44
или около того кадра, изменив кадр на
00:15:47
одну треть, что составляет около
00:15:49
0,33,
00:15:52
вы, вероятно, видели этот математический
00:15:54
сценарий раньше, в костюме переключателя нам
00:15:56
нужен оператор сложения,
00:15:59
теперь мы начинаем анимацию на
00:16:01
первом костюме здесь, и мы анимируем
00:16:05
четыре костюма, прежде чем снова вернуться к
00:16:07
костюму 1,
00:16:09
поэтому мы начинаем с костюма 1. вставьте это слева,
00:16:13
затем справа, нам нужен блок пола,
00:16:16
это округляет числа до
00:16:18
ближайшего целого числа, поэтому от кадра
00:16:20
1.33 до
00:16:23
следующего кадра нам нужен мод, чтобы зациклить нас вокруг каждого
00:16:26
из четырех костюмов,
00:16:28
чтобы четыре вошли в правый
00:16:31
мод, который дает нам остаток после
00:16:32
деления,
00:16:34
теперь мы можем разместить пол кадра
00:16:36
слева от мода та-да, все
00:16:39
начинается с первого кадра и повторяется по
00:16:41
следующим четырем кадрам снова и снова, и
00:16:44
все, и вот,
00:16:47
анимация выглядит великолепно, и
00:16:49
скорость анимации тоже работает хорошо,
00:16:52
так что вы готовы получить немного больше
00:16:54
здесь происходит взаимодействие, не должно
00:16:57
быть сложно позволить этому врагу причинить нам вред,
00:16:59
поскольку спрайт опасности уже делает это,
00:17:01
просто транслируя жизнь Лу,
00:17:04
действительно, в конце вечного цикла
00:17:06
вставьте блок if
00:17:10
и посмотрите, когда враг касается
00:17:12
игрока.
00:17:17
Я не хочу расширять этот цикл
00:17:19
слишком большим количеством сценариев, поэтому создайте новый пользовательский
00:17:21
блок, назвав его
00:17:23
касающимся игрока,
00:17:24
но на этот раз не отмечайте запуск без
00:17:27
обновления экрана, возможно, мы все-таки захотим добавить
00:17:29
анимацию в этот сценарий.
00:17:32
да, так что используйте блок сразу,
00:17:34
когда мы знаем, что касаемся игрока
00:17:36
здесь,
00:17:37
и для начала просто перетащите
00:17:40
трансляцию,
00:17:41
потеряем жизнь,
00:17:43
мы падаем, поэтому запустите проект,
00:17:46
мы идем,
00:17:47
касаясь врага,
00:17:51
что это был за звук,
00:17:53
звук смерти игрока там зацикливались снова и снова
00:17:56
самым ужасным образом,
00:17:58
поэтому мы должны запускать потерю жизни
00:18:00
в нескольких кадрах.
00:18:02
Проблема в том, что враг продолжает
00:18:04
двигаться после нашей смерти, что мне нравится, а
00:18:07
затем они все еще проверяют
00:18:08
столкновения, когда мы исчезаем. необходимо
00:18:11
предотвратить дальнейшие проверки, пока
00:18:13
анимация свободной жизни воспроизводится
00:18:15
нормально, тогда нет проблем,
00:18:18
когда мы проверяем прикосновение к игроку, добавляем
00:18:20
и блокируем и равно,
00:18:27
нам понадобится новое имя переменной, она
00:18:29
неуязвима
00:18:30
для всех спрайтов,
00:18:32
это будет означать, что мы не можем быть
00:18:34
убитым,
00:18:35
и мы проверим, равно ли оно нулю,
00:18:39
поэтому, если игрок не неуязвим и
00:18:42
враг касается игрока
00:18:44
только тогда, мы запускаем жизнь проигравшего,
00:18:47
это все очень хорошо, но
00:18:49
теперь нам нужно установить неуязвимость, когда
00:18:51
мы проиграем жизнь,
00:18:53
которая будет в спрайте игрока, поэтому
00:18:56
щелкните там и найдите сценарий «Когда я
00:18:58
получу потерю жизни»,
00:19:01
а затем прямо вверху в наборе,
00:19:03
неуязвимом для одного
00:19:05
хорошего,
00:19:06
который должен предотвратить ужасный звук,
00:19:09
но нам также нужно сбросить это обратно на
00:19:12
ноль, когда игра начинается,
00:19:14
поэтому найдите сценарий сброса определения и начала уровня,
00:19:18
и мы установим уязвимость на ноль прямо
00:19:21
вверху,
00:19:25
отлично, давайте проверим это,
00:19:31
ох, это облегчение, которое гораздо
00:19:35
более терпимо, хорошая работа,
00:19:38
конечно, все знают, хотя это мы
00:19:40
должны иметь возможность прыгнуть на голову этого врага,
00:19:42
чтобы победить его,
00:19:44
что было бы отличным дополнением к этому
00:19:45
проекту, и мы обнаружим это, проверив,
00:19:47
когда игрок просто спускается
00:19:50
сверху, и если перед трансляцией он потеряет
00:19:53
жизнь,
00:19:54
если скорость y игрока меньше,
00:19:57
чем
00:19:58
нам нужно, чтобы получить скорость y от
00:20:00
блока из категории сенсоров,
00:20:07
и я собираюсь установить скорость
00:20:09
минус единицу,
00:20:11
мы хотим быть уверены, что они движутся
00:20:12
вниз, когда касаются врага
00:20:15
теперь мы должны воспроизвести хлюпающий звук на
00:20:18
вкладке звуков,
00:20:20
мы можем найти его, вот и
00:20:22
мы,
00:20:23
хлюпающий поп должен быть хорош,
00:20:30
поэтому в случае запуска звука хлюпающий поп теперь
00:20:34
помните, что мы сделали костюм, когда
00:20:36
враг был раздавлен, переключите костюм на красный
00:20:39
хлюпающий звук
00:20:41
дальше мы хотим подождать некоторое время,
00:20:43
возможно, 0,3 секунды,
00:20:46
прежде чем исчезнуть,
00:20:48
чтобы сделать это, мы повторяем 10, поэтому
00:20:50
мы не отмечали запуск
00:20:52
без обновления экрана, иначе это
00:20:54
не было бы анимации, и мы меняем
00:20:56
призрачный эффект на
00:20:58
10, так как десять десятков равны 100 и он
00:21:01
полностью исчезнет, ​​супер,
00:21:03
нам просто нужно наконец удалить этот
00:21:06
клон после того, как цикл повторения завершится,
00:21:09
давайте проверим это, я
00:21:12
смогу прыгнуть ему на голову о
00:21:16
боже, я только что наткнулся на него, давай попробуем еще
00:21:18
раз да, мы раздавили его,
00:21:23
но здесь чего-то не хватает,
00:21:24
вы видели, что это было,
00:21:29
да, нам нужно, чтобы игрок
00:21:32
снова подпрыгнул, это просто выглядит неправильно, когда
00:21:33
игрок приземляется на землю после
00:21:35
раздавливания,
00:21:37
поскольку мы не можем установить скорость игрока y
00:21:39
от вражеского спрайта нам нужно
00:21:41
передать
00:21:42
прямо перед воспроизведением звука хлюпания
00:21:44
и передать новое сообщение с именем
00:21:48
player buge,
00:21:55
щелкнуть по спрайту игрока и найти
00:21:57
немного места,
00:22:01
когда я получу отскок игрока,
00:22:08
мы просто устанавливаем скорость y на
00:22:11
10,
00:22:12
мы всегда можем изменить это
00:22:14
позже, если это покажется вам слишком большим или слишком маленьким,
00:22:16
вы уже знаете, что делать,
00:22:19
давайте проверим это
00:22:27
великолепно, мне очень нравится, что небольшой
00:22:29
отскок просто имеет решающее значение,
00:22:32
окей, ребята, мне интересно, беспокоились ли вы
00:22:34
о том, где я разместил этого
00:22:37
первого врага, кто-нибудь из вас подумал, о боже,
00:22:40
он пожалеет об этом, когда
00:22:41
игрок попытается вернуться на первую
00:22:43
сцену,
00:22:44
ну, если да, то вы были бы совершенно правы,
00:22:47
посмотрите, насколько это прискорбно в
00:22:49
прошлые годы, я играл в настоящую рекламу
00:22:51
в играх, где это было проблемой, нам
00:22:54
нужно быть более осторожными и учитывать все
00:22:55
направления, в которых игрок может войти в
00:22:57
сцену, чтобы он не наткнулся на
00:22:59
зону появления врага и не получил автоматическое убийство,
00:23:02
однако мы можем быть еще немного хитрее
00:23:06
но для этого мы должны сначала улучшить наш
00:23:08
сценарий появления врагов.
00:23:10
щелкнуть по спрайту врага и найти
00:23:12
сценарий изменения сцены, когда я получу сценарий изменения,
00:23:14
мы создадим собственный блок, чтобы обернуть все
00:23:16
позиционирование и клонирование, здесь
00:23:19
назовите его,
00:23:21
добавьте ввод типа
00:23:23
затем текстовая метка at,
00:23:26
затем два числовых ввода x и y,
00:23:30
текстовая метка der di r для направления
00:23:33
и ввод der2,
00:23:35
отличный запуск без обновления экрана,
00:23:38
мы можем переместить туда позицию и
00:23:40
сценарий клонирования и использовать
00:23:41
блок в его поместите
00:23:45
теперь часть типа в настоящее время не используется,
00:23:48
но мне кажется приятным дать ей имя, поэтому
00:23:50
закрепите красный цвет,
00:23:51
затем мы скопируем позиции x и y
00:23:54
и, конечно же, направление минус 90.
00:23:57
Coolio, нам просто нужно соединить x и
00:24:00
y вводит вход в xy
00:24:03
и ввод в точку в направлении,
00:24:06
и это значит, что нужно быстро проверить,
00:24:09
да, выглядит хорошо,
00:24:11
так что я говорил о хитром
00:24:14
плане,
00:24:15
верно, да, итак, хитрый план - это почему
00:24:18
мы должны расположить враг
00:24:20
все время в одном и том же месте,
00:24:22
почему бы не изменить свою позицию, если
00:24:24
игрок входит в сцену с
00:24:26
другой стороны,
00:24:28
можем ли мы сделать это, чтобы быть
00:24:29
уверенными, что сможем придерживаться, а если еще вокруг
00:24:32
блока возрождения, прямо здесь,
00:24:35
нам нужно проверить, с какой стороны на
00:24:36
экране игрок находится на
00:24:38
палке в компараторе меньше, и мы
00:24:41
ищем позицию игрока по x,
00:24:44
если позиция игрока по x меньше
00:24:47
нуля, то мы вошли в сцену
00:24:50
слева, поэтому мы можем расположить
00:24:52
врага дальше прямо
00:24:55
сейчас давайте продублируем блок появления в
00:24:57
else,
00:24:58
так где мы должны порождать врага, если
00:25:00
игрок вошел с правой стороны сцены, мы
00:25:03
сделаем врага видимым на сцене
00:25:06
и разместим его дальше влево
00:25:08
от зоны автоматического убийства для мне
00:25:11
это дает x 87, поэтому я ввожу это
00:25:14
в новую позицию появления x,
00:25:16
а также я хочу, чтобы враг смотрел вправо,
00:25:19
поэтому измените направление на 90.
00:25:22
наконец, мы можем проверить, что
00:25:25
игра начинается с нашего врага в
00:25:27
крайнем правом углу, как и раньше так что, перепрыгнув через него,
00:25:29
мы можем войти справа,
00:25:31
да, мы не умерли, что является отличным знаком,
00:25:34
и да, враг теперь появился
00:25:36
слева, когда мы вошли в сцену, это
00:25:39
великолепно,
00:25:40
так что, конечно, вам нужно делать это только в том случае, если
00:25:42
вы хотим, чтобы враг вел себя по-разному,
00:25:44
когда вы входите в сцену слева или
00:25:46
справа, в противном случае мы можем просто оставить
00:25:48
один блок появления для сцены,
00:25:50
но что, если вы хотите создать более
00:25:52
одного врага в сцене, можем ли мы сделать это хорошо,
00:25:56
да, конечно, просто прекратите В проекте
00:25:58
мы делаем спрайт врага видимым и
00:26:00
размещаем его там, где вы хотите, чтобы он появлялся,
00:26:03
затем дублируем новый блок появления внутри
00:26:06
него, если сцена равна 1, и заполняем
00:26:08
позиции x и y из текущих
00:26:10
позиций x и y на сцене,
00:26:12
и я я поверну их лицом влево,
00:26:17
хорошо,
00:26:18
прогоню это,
00:26:20
чтобы вы увидели, что оба врага появились
00:26:22
одновременно, и
00:26:24
в этой игре все работает отлично, враги всегда
00:26:26
возрождаются, как только вы вернетесь на сцену, вы
00:26:29
можете или не можете этого захотеть, если есть
00:26:31
большой спрос, тогда я покажу вам другие
00:26:33
способы, которыми это может работать в последующих
00:26:34
уроках, но это сделает игру более
00:26:37
оживленной. Хорошо, мы близки к завершению
00:26:40
этого эпизода, но последнее, о чем я
00:26:42
хочу рассказать, это то, как мы можем предотвратить появление
00:26:44
этого главного врага. от падения с
00:26:46
верхней платформы
00:26:48
часто мы хотим, чтобы враги патрулировали
00:26:50
определенные зоны. Самый простой способ
00:26:52
добиться этого — добавить безопасные зоны,
00:26:55
то есть области, где враги не могут ходить,
00:26:58
как дополнительные стены, которые кажутся врагам только для
00:27:02
начала, дублируя спрайт опасности. я
00:27:05
выбрал это, потому что в нем меньше всего
00:27:07
скриптов, поэтому нам потребуется меньше всего очистки,
00:27:10
назовите его безопасными зонами,
00:27:13
затем в редакторе костюмов удалите все,
00:27:16
кроме пустого костюма,
00:27:18
теперь, так как я хочу добавить безопасные зоны в сцену
00:27:20
1 игры, я нажму в
00:27:22
спрайт уровня и скопируйте костюм сцены 1
00:27:25
в новый спрайт безопасной зоны,
00:27:28
круто, щелкните обратно в спрайт безопасной зоны,
00:27:30
теперь
00:27:31
мы можем нарисовать любые стены, блокирующие врага,
00:27:34
я хочу одну прямо здесь, на краю
00:27:37
этой верхней платформы,
00:27:39
поэтому запускаю проект сейчас вы можете видеть, что
00:27:41
появилась новая стена, но она
00:27:43
ничего не делает,
00:27:49
поэтому щелкните по спрайту врага и найдите
00:27:51
сценарий перемещения влево вправо,
00:27:54
а также столкновение с уровнем, который мы
00:27:56
теперь хотим также столкнуться с безопасными зонами,
00:28:00
но вы знаете, что этот сценарий получает
00:28:01
на мой вкус слишком широк, так что загляните на
00:28:04
секунду, если внутри первой,
00:28:07
потому что они не соприкасаются, мы можем
00:28:10
сказать, что не касаемся здесь безопасной зоны, и это
00:28:12
работает точно так же, как
00:28:18
сейчас,
00:28:20
и вы должны обнаружить, что игрок может прыгать
00:28:22
прямо через эти зоны,
00:28:25
но враг, которого
00:28:26
они не могут, это идеально,
00:28:29
единственный недостаток в том, что мы на
00:28:31
самом деле не хотим, чтобы они были видны
00:28:32
игроку, как это,
00:28:34
лучшее быстрое решение - в пределах безопасной
00:28:36
зоны, установите спрайт
00:28:38
призрачный эффект на 100 прямо при
00:28:42
запуске, если мы я спрятал
00:28:44
спрайт в шкуре, которая не позволяла бы
00:28:46
врагам прикасаться к нему, и
00:28:48
тогда они просто проходили бы сквозь него,
00:28:51
но использование призрака, чтобы исчезнуть с
00:28:54
лица земли, на самом деле делает их полностью
00:28:56
осязаемыми, что действительно очень полезно знать,
00:29:01
поэтому проверьте это еще раз
00:29:03
и да, это выглядит хорошо, наши
00:29:06
враги движутся так, как мы этого хотим,
00:29:08
поэтому, наконец, прежде чем мы закончим, есть
00:29:11
еще одна проблема, которую нужно решить, пойдем со мной в
00:29:14
сцену с движущейся дверью,
00:29:16
я собираюсь разместить нового врага на
00:29:17
экране, чтобы справа от этой двери
00:29:20
остановите проект, сделайте врага видимым,
00:29:22
расположите его,
00:29:24
а затем в сценарии изменения сцены, когда я получу
00:29:26
сцену,
00:29:29
нам нужна новая проверка для сцены 4.
00:29:32
Я хочу создать только одного врага, поэтому
00:29:35
удалите все остальные точки появления,
00:29:37
заполните положения x и y на
00:29:40
сцене
00:29:41
справа, так в чем будет проблема,
00:29:44
какие идеи
00:29:46
вы наблюдаете,
00:29:49
ах,
00:29:50
они могут проходить через двери или,
00:29:53
точнее, они могут проходить через
00:29:55
движущиеся платформы,
00:29:57
поэтому у нас есть еще один спрайт, который нам нужно
00:29:59
проверить на предмет столкновений с врагами против
00:30:01
да, вернитесь во вражеский спрайт, найдите
00:30:04
скрипт перемещения влево или вправо
00:30:07
и введите блок касающейся платформы,
00:30:11
нам снова понадобится оператор или, так как
00:30:13
враг блокируется, если он касается
00:30:15
безопасной зоны или платформы,
00:30:18
так что вставьте его, и поехали,
00:30:24
да враг теперь ведет себя не как
00:30:27
красный упырь, а больше как милый,
00:30:29
чавкающий враг, которого мы хотели, это
00:30:32
здорово видеть, я просто возьму ключ
00:30:34
от этой двери,
00:30:36
и теперь мы можем войти
00:30:38
[Музыка],
00:30:43
если я подожду этого чувак, я тоже могу пропустить их
00:30:45
через дверь,
00:30:48
ох,
00:30:51
похоже, их поймали, я думаю, на
00:30:53
этом этапе мы могли бы сделать несколько дополнительных проверок
00:30:55
и настроить их на раздавливание,
00:30:57
но меня не слишком беспокоит эта
00:30:59
маленькая причуда, возможно, мы вернемся к этому в
00:31:01
следующем эпизоде ​​тоже, потому что
00:31:03
это все, на что у нас есть время на сегодня, я
00:31:06
рассмотрел только один из множества возможных
00:31:09
типов и вариантов поведения врагов, но я надеюсь, что вы,
00:31:11
возможно, попытаетесь добавить в
00:31:13
свои платформеры всевозможных врагов, теперь сами,
00:31:15
когда вы это сделаете, пожалуйста, отправьте их в
00:31:17
студию, на которую есть ссылка под этим видео, я
00:31:19
очень жду их встречи, мне очень
00:31:21
хочется сделать видео, демонстрирующее
00:31:24
их, но, поскольку их так много, я
00:31:26
открою первые деньги участникам моего канала,
00:31:28
так что следите за участником- пишите
00:31:31
об этом только в ближайшие недели и продолжайте в том же духе.
00:31:33
Надеюсь, если вам понравится это
00:31:35
видео, вы нажмете кнопку «Нравится» и
00:31:38
не забудьте подписаться, чтобы не
00:31:39
пропустить мое следующее захватывающее видео,
00:31:42
если вы педагог или Я очень преданный
00:31:44
фанат, тогда вы можете рассмотреть возможность
00:31:46
дальнейшей поддержки меня, присоединившись к членству на канале,
00:31:49
есть добавленные привилегии, такие как
00:31:51
приоритетные комментарии к смайлам канала, ранний доступ к видео,
00:31:54
а для тех, кто хочет, чтобы они получили доступ к
00:31:55
самим скретч-проектам,
00:31:58
но до следующего раза
00:32:00
желаю вам отличной недели и поцарапать
00:32:03
парней
00:32:04
[Аплодисменты]

Описание:

Coding Platformer Enemies made easy. In this tutorial we show how to add multiple patrolling, chomping enemies to our Scratch Game. Jump on their heads to squash them and continue on your quest! We also add safe zones to allow for guided patrolling, and learn about the danger of placing enemies too near the edge of a scene where the player might unfairly lose a life. My tutorials are for all budding game & software developers using Code Blocks. Scratch On guys! 🐱 Scratch Studio (post project here) - https://scratch.mit.edu/studios/30847631/ 🔥 Wall Jumping Bug Fix - https://www.youtube.com/watch?v=_O3Sb0-wIxM 👀 Next Episode #12 - https://www.youtube.com/watch?v=PuqyJOT83ko 👀 First Episode - https://www.youtube.com/watch?v=D16hTnDGweo 👀 Playlist - https://www.youtube.com/playlist?list=PLy4zsTUHwGJIATydhFeZa5pspLZR7yE__ 🚀 *Boost Your Creativity with Griffpatch* The Griffpatch Academy will take you from "Gamer to Game Creator" Learn more at 👉 https://griffpatch.academy/ 👈 😺 Scratch was developed by the Lifelong Kindergarten Group at the MIT Media Lab. See http://scratch.mit.edu/ ❤️ Scratch Addons - https://scratchaddons.com/ 📹 Video Editing Software - https://www.techsmith.com/camtasia/ --------------Video Chapters-------------- 0:00 Intro 0:44 Red Enemy 3:19 Positioning and Spawning Enemy Clones 6:05 De-spawning Enemy Clones 7:36 Enemy Gravity – Move Down 9:59 Enemy Movement – Left and Right 11:38 Enemies on slopes 13:48 Animation 16:48 Enemy Collisions – Lose a Life 19:37 Jump on an Enemies Head 22:29 Improved Enemy Spawning 26:37 Safe Zones 29:07 Door problem 31:03 Outro

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Coding Platformer Enemies | 11. Scratch Platformer Tutorial"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Coding Platformer Enemies | 11. Scratch Platformer Tutorial" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Coding Platformer Enemies | 11. Scratch Platformer Tutorial"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Coding Platformer Enemies | 11. Scratch Platformer Tutorial" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Coding Platformer Enemies | 11. Scratch Platformer Tutorial"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Coding Platformer Enemies | 11. Scratch Platformer Tutorial"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

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