网站搜索

Microsoft MakeCode for Minecraft:在享受乐趣的同时免费学习 JavaScript


喜欢 Minecraft 并且想学习编码吗?以下是 Microsoft MakeCode for Minecraft 如何让 JavaScript 学习变得有趣。

JavaScript(JS、ECMAScript、ES)是一种多功能编程语言,为全球提供了数以千计的高薪工作……因此,您可能会惊讶地发现,您可以通过玩 Minecraft 来学习它。

Microsoft MakeCode for Minecraft 致力于通过有趣、免费的项目将软件开发世界带给所有人,让您的代码在方块世界中栩栩如生。

什么是微软 MakeCode?

Microsoft MakeCode 是一个学习平台,致力于使计算机科学教育变得有趣且易于理解。它是免费和开源的,具有多种学习、构建和玩耍的方法。

如果您以前玩过《我的世界》,这个选项可能会引起您的注意。您可以在本部分中学习 Python 和 JavaScript,或者使用块编辑器来处理编程逻辑,而无需担心代码。我们将在本文中使用 JS。

本文将通过分解最初的项目 Chicken Rain 并向您介绍 MakeCode for Minecraft 的功能,并介绍一些自定义脚本 - 第一个将允许您切换常见设置(如天气或时间),第二个将允许您您可以创建并玩自定义迷你游戏。

注意:为了利用 MakeCode for Minecraft 的全部功能,您需要一个 Minecraft 基岩版(适用于 Windows 10 的 Minecraft)或 Minecraft 教育版帐户。

设置:代码连接和新世界

要将代码与 Minecraft 客户端同步,请下载并安装 Microsoft Code Connection。

选择您的 Minecraft 版本,然后按照 Windows 10 版 Minecraft MakeCode 设置页面上列出的步骤安装并运行 Code Connection。

运行代码连接后,启动 Minecraft 并创建一个启用作弊的新世界(玩 > 世界 > 新建 > 创建新世界 > 创建)。必须启用激活秘籍才能访问 MakeCode 的全部功能。

开始您的新世界,并将 Code Connection 显示的命令输入到聊天中,以同步您的文本编辑器和游戏客户端。

现在代码连接已经设置完毕,一个新的世界正在等待着您,您已经准备好开始编码了!

Minecraft MakeCode:鸡雨

第一个可用的项目是Chicken Rain。这个五步教程将帮助您熟悉 MakeCode UI(如文本编辑器、菜单、播放按钮和有用的文档)。

我们还将初步了解“变量”和“函数”,这是计算机科学的两个关键组成部分。当你写完剧本后,你也会拥有自己的一群漂浮的小鸡。

如果您的目标是创建成熟的模组,这听起来可能没什么,但看到您的代码变得栩栩如生是一种令人难以置信的感觉,让许多工程师终生着迷。这是你的第一步!

将代码复制到文本编辑器之前检查提示。这是一个很好的例子,它展示了你应该如何像计算机科学家一样思考。

注意:不懂程序员的行话?这是 JavaScript 备忘单。

  1. 首先,我们使用 mobs.spawn() 调用对象的函数。这就是我们指定计算机要执行的操作的方式。我们希望《我的世界》能够产生一群暴徒。
  2. 很好,但是什么样的暴民呢?这里我们指定一个变量——CHICKEN——来告诉计算机我们想要生成哪个生物。
  3. mobs.spawn() 接受两个参数:生物类型和位置。我们仍然需要告诉计算机我们希望生物在哪里产卵。我们使用 pos(0, 10, 0) 来实现此操作,其中 (0, 10, 0) 是相对于您的 Minecraft 角色的 XYZ 坐标。
mobs.spawn(CHICKEN, pos(0, 10, 0))

单击播放按钮运行您的代码。切换回 Minecraft 并查找!如果一切顺利,你就诞生了一位长着羽毛的朋友。

如果我们想要更多的鸡怎么办(老实说,谁不想要?)我们是否应该复制并粘贴此代码几次,然后再次点击运行?好吧,你可以,但你不应该——在编码早期学习的一个好口号是“DRY”(不要重复自己)。这将使你成为更高效的开发人员。

要多次运行相同的代码,我们使用循环。

“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))}

单击播放按钮并切换回 Minecraft。鸡雨!

MakeCode for Minecraft:使用 JavaScript 带来更多乐趣

掌握了第一行 JavaScript 后,您就可以访问任意数量的其他 MakeCode 教程,例如 Mega Jump 或 Save the Cake,或者创建一个空白文档并让您的创造力尽情发挥。

让我们看一下一些可以锻炼我们的 JS 技能的自定义脚本。

控制时间和其他设置

睡得太晚而怀念照料农场的时光?想要将时钟拨回吗?为什么总是下雨?别担心,编程来拯救你!

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

该代码块引入了 if else 语句,它是计算机科学逻辑的主要内容。

  1. 调用当您与某个项目交互时运行的“player”对象的函数 player.onItemInteracted()。指定您要使用的项目(在本例中为时钟),并设置当您与该项目function() {}交互时运行的函数。
  2. 包含 if else 语句 if() {} else {} 以充当开/关开关。填写参数 if(gameplay.isDayLightTime(Day)) 以检查 Minecraft 中的时间。
  3. 将您想要运行的代码包含在 if 大括号 {gameplay.timeSet(DayTime.Night)} 内。到目前为止,您的代码检查是否是Day,如果是,则将其设置为Night。
  4. 在else部分{gameplay.timeSet(Daytime.Day)}中编写代码。假设您的 if 语句未满足(游戏中当前时间为晚上),您的 else 代码将运行。

单击播放按钮,然后切换到 Minecraft 并在聊天中输入/gamemode 1;打开你的库存并在时钟中生成。右键单击手中的时钟几次 - 如果您正确编写了代码,您的世界将在太阳和月亮之间交换。

这个逻辑的可能性是无限的。使用左侧的菜单可以查看要使用的各种命令和变量。把手弄脏;找出什么有效,什么无效(以及什么看似应该有效但仍然无效)。这就是探索计算机科学世界的意义。

Minecraft 迷你游戏的 MakeCode:蝙蝠猎人

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 初始化 points 变量。现在创建一个函数来跟踪每次击球得分 2 分。我们使用模板文字将字符串文本(“2 点!”总计:)与变量值($ {points})组合起来。
  4. 创建与步骤 3 类似的函数来清除您的总分。
  5. 现在创建应在其中运行这些函数的实例。我们希望 addPoints 在蝙蝠被杀死时运行,因此我们使用 mobs.onMobKilled(BAT, addPoints)。我们希望当您在聊天中键入“clearPoints”时运行clearPoints。

点击开始并获得尽可能多的积分!我建议在一个大房间里玩(也许可以设置一些障碍物让蝙蝠躲到后面),因为在室外玩会让蝙蝠很容易飞到远处。

与本教程中的其他脚本以及您在计算机科学之旅中遇到的所有其他代码一样,此代码只是您添加自己的天赋的基础。您可以使用计时器来添加紧急元素,或者使用记分板来跟踪您之前的比赛;您构建的内容仅受您自己的创造力的限制。

Minecraft 代理的 MakeCode

代理是一个漂亮的 NPC,可让您在单人游戏中测试多人交互、自动执行任务等等。

MakeCode 提供了 Agent Checkers 的指导教程,让您的 Agent 走遍迷宫,它还提供了大量与 Agent 相关的源代码,您可以根据需要进行修改。

深入研究 JavaScript

我们希望 Minecraft 的 MakeCode 能够激发您的编码兴趣!我们支持其培养新一代程序员的使命。

当您练习了一些重要的 JavaScript 方法时,我们在本文中仅研究了 JavaScript 的冰山一角。如果您想学习 JavaScript 以便为工作做好准备,您应该了解 JS 如何与 HTML 和 CSS 等其他 Web 技术交互。您还应该学习常见的数据结构和算法。