Microsoft MakeCode для Minecraft: бесплатно изучайте JavaScript, развлекаясь

JavaScript (JS, ECMAScript, ES) – это универсальный язык программирования, который обеспечивает тысячи высокооплачиваемых вакансий по всему миру … так что вас может удивить то, что вы можете изучить его, играя в Minecraft.

Microsoft MakeCode для Minecraft стремится открыть мир разработки программного обеспечения для всех и каждого с помощью забавных бесплатных проектов, которые воплощают ваш код в жизнь прямо на ваших глазах в мире блоков.

Что такое Microsoft MakeCode? Логотип Microsoft MakeCode Minecraft

Microsoft MakeCode – это обучающая платформа, призванная сделать образование в области информатики интересным и доступным. Это бесплатное приложение с открытым исходным кодом и множеством методов обучения, сборки и игры.

Если вы раньше играли в Minecraft, вам может понравиться этот вариант. В этом разделе вы можете изучить Python и JavaScript или использовать редактор блоков для работы над логикой программирования, не беспокоясь о коде. В этой статье мы будем использовать JS.

Эта статья познакомит вас с функциями MakeCode для Minecraft , разбив исходный проект, Chicken Rain, а также представив несколько пользовательских скриптов – первый позволит вам переключать общие настройки (например, погоду или время), а второй позволит вам создавать собственные мини-игры и играть в них.

Примечание . Чтобы воспользоваться всеми функциями MakeCode для Minecraft, вам потребуется учетная запись Minecraft Bedrock Edition (Minecraft для Windows 10) или Minecraft Education Edition .

Настройка: соединение кода и новый мир

Чтобы синхронизировать код с клиентом Minecraft, загрузите и установите Microsoft Code Connection .

Выберите свою версию Minecraft, затем следуйте инструкциям на странице настройки Minecraft для Windows 10 для MakeCode, чтобы установить и запустить Code Connection.

Запустив Code Connection, запустите Minecraft и создайте новый мир ( Play> Worlds> Create New> Create New World> Create ) с включенными читами. Активация читов должна быть включена для доступа ко всем функциям MakeCode.

Начните свой новый мир и введите команду, отображаемую Code Connection, в чат, чтобы синхронизировать текстовый редактор и игровой клиент.

Связанный: Шпаргалка по Ultimate Minecraft Commands

Теперь, когда Code Connection настроен и вас ждет новый мир, вы готовы приступить к программированию!

Minecraft MakeCode: Куриный дождь

Первый доступный проект – Chicken Rain . Это пятиэтапное руководство поможет вам ознакомиться с пользовательским интерфейсом MakeCode (например, с текстовым редактором, меню, кнопкой воспроизведения и полезной документацией).

Связанный: Хотите научиться программированию? Ключевые термины, которые вам следует знать

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

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

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

Примечание : не понимаете жаргон программиста? Вот шпаргалка по JavaScript .

  1. Сначала мы вызываем функцию объекта с помощью mobs.spawn () . Вот как мы указываем, что мы хотим, чтобы компьютер делал. Мы хотим, чтобы Minecraft порождал моба.
  2. Отлично, а что за моб? Здесь мы указываем переменную CHICKEN, чтобы сообщить компьютеру, какого моба мы хотим создать.
  3. mobs.spawn () принимает два параметра: тип и позицию моба. Нам все еще нужно указать компьютеру, где мы хотим, чтобы моб появился. Мы делаем это с помощью pos (0, 10, 0), где (0, 10, 0) – координаты XYZ относительно вашего персонажа Minecraft.
 mobs.spawn(CHICKEN, pos(0, 10, 0))

Нажмите кнопку « Воспроизвести», чтобы запустить код. Вернитесь в Minecraft и посмотрите вверх! Если все прошло гладко, вы породили пернатого друга.

Что, если нам нужно больше цыплят (а кто, честно говоря, не хочет?). Нужно ли нам просто скопировать и вставить этот код несколько раз, а затем снова запустить команду? Что ж, вы можете, но не должны – хорошая мантра, которую следует выучить на ранних этапах программирования, – это «СУХОЙ» (не повторяйтесь). Это сделает вас более эффективным разработчиком.

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

Цикл for будет запускать код, который мы помещаем в него, на столько итераций, сколько мы укажем – в данном случае 100.

  1. Начните с for () {} . Фигурные скобки используются для определения области действия этого цикла – любой код внутри фигурных скобок будет выполняться несколько раз.
  2. Нам нужно указать компьютеру, сколько раз этот код должен запускаться. Внутри скобок создайте переменную с помощью let и установите для нее значение 0 . Затем мы указываем, сколько раз этот цикл должен выполняться, включая i <100 . Наконец, мы указываем, что должно произойти в конце каждой итерации – значение нашей переменной будет увеличено на единицу ( i ++ ).
  3. Вставьте код предыдущего шага в фигурные скобки. Обязательно сделайте отступ, как указано.
 for (let i=0; i<100; i++) {
mobs.spawn(CHICKEN, pos(0, 10, 0))
}

Нажмите кнопку Play и вернитесь в Minecraft. Куриный дождь!

MakeCode для Minecraft: больше удовольствия с JavaScript

Имея за плечами свои первые строчки JavaScript, вы можете получить доступ к любому количеству других руководств по MakeCode, таких как Mega Jump или Save the Cake, или создать пустой документ и дать волю своему творчеству.

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

Связанный: Как объявлять переменные в JavaScript

Контроль времени и других настроек

Слишком поздно ложитесь спать и скучаете по хозяйству? Хотите вернуть часы? И почему всегда идет дождь? Не волнуйтесь, на помощь приходит программирование!

 player.onItemInteracted(CLOCK, function() {
if(gameplay.isDaylightTime(DAY)){
gameplay.timeSet(DayTime.Night)
} else {
gameplay.timeSet(DayTime.Day)
}
})

Этот блок кода вводит оператор if else , основной элемент логики информатики.

  1. Вызовите функцию player.onItemInteracted () объекта player, которая запускается, когда вы взаимодействуете с определенным элементом. Укажите элемент, который вы хотите использовать, в данном случае ЧАСЫ , и настройте функцию, которая будет запускаться при взаимодействии с элементом function () {} .
  2. Включите оператор if else if () {} else {}, который будет действовать как переключатель включения / выключения. Заполните параметры if (gameplay.isDayLightTime (Day)), чтобы узнать, сколько времени в Minecraft.
  3. Включите код, который вы хотите запустить, в фигурных скобках if {gameplay.timeSet (DayTime.Night)} . Пока ваш код проверяет, является ли это днем , а затем устанавливает его на ночь, если это так.
  4. Напишите код в другом разделе {gameplay.timeSet (Daytime.Day)} . Допустим, ваш оператор if не выполняется (сейчас в игре ночное время) – ваш код else будет работать.

Нажмите кнопку Play , затем переключитесь на Minecraft и введите / gamemode 1 в чат; откройте свой инвентарь и появитесь в часах. Щелкните правой кнопкой мыши часы в руке несколько раз – если вы правильно написали код, ваш мир будет переключаться между солнцем и луной.

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

MakeCode для мини-игры Minecraft: Bat Hunter

 player.onChat("batHunt", function () {
gameplay.setGameMode(
SURVIVAL,
mobs.target(LOCAL_PLAYER)
)
gameplay.setDifficulty(NORMAL)
mobs.give(
mobs.target(NEAREST_PLAYER),
BOW,
1
)
mobs.give(
mobs.target(NEAREST_PLAYER),
ARROW,
64
)
for (let i=0; i<32; i++) {
mobs.spawn(BAT, randpos(
pos(-5, 0, -8),
pos(5, 0, 5)
))
}
})
let points = 0
let addPoints = function () {
points += 1
player.say(`2 Points! Total: ${points}`)
}
let clearPoints = function () {
points = 0
player.say("Points Cleared.")
}
mobs.onMobKilled(BAT, addPoints)
player.onChat("clearPoints", clearPoints)

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

  1. Мы вызываем функцию player.onChat () в качестве настройки. Это установит ваш режим игры на выживание и сложность игры на нормальную, а затем предоставит вам лук и 64 стрелы.
  2. Затем мы настраиваем цикл for с вызовом функции mobs.spawn () для появления 32 летучих мышей. Мы используем randpos (), чтобы указать диапазон мест, в которых могут появиться летучие мыши. Это заставит их непредсказуемо окружать вас роем.
  3. Теперь мы настраиваем алгоритм отслеживания точек. Инициализируйте переменную точек со значением 0 . Теперь создайте функцию, которая отслеживает 2 очка за каждый бросок битой. Мы используем литерал шаблона для объединения текста строки («2 балла!» Итого:) со значением переменной ($ {points}).
  4. Создайте функцию, аналогичную шагу 3, чтобы обнулить общее количество баллов.
  5. Теперь создайте экземпляры, в которых должны выполняться эти функции. Мы хотим, чтобы addPoints запускался, когда летучая мышь убита, поэтому мы используем mobs.onMobKilled (BAT, addPoints) . Мы хотим, чтобы clearPoints запускалась, когда вы вводите «clearPoints» в чате.

Нажмите " Играть" и получите как можно больше очков! Я рекомендую играть в большой комнате (может быть, бросить какие-то препятствия, чтобы летучие мыши могли отстать), потому что игра на улице позволяет летучим мышам легко улетать вдаль.

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

MakeCode для агента Minecraft

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

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

Более глубокое погружение в JavaScript

Мы надеемся, что MakeCode для Minecraft пробудил ваш интерес к программированию! Мы поддерживаем его миссию по созданию нового поколения программистов.

Пока вы практиковали некоторые жизненно важные методы JavaScript, в этой статье мы рассмотрели лишь верхушку айсберга JavaScript. Если вы хотите изучить JavaScript, чтобы быть готовым к работе, вам следует узнать, как JS взаимодействует с другими веб-технологиями, такими как HTML и CSS. Было бы разумно изучить общие структуры данных и алгоритмы.