适用于Minecraft的Microsoft MakeCode:在玩乐的同时免费学习JavaScript

JavaScript(JS,ECMAScript,ES)是一种通用的编程语言,可在全球范围内提供成千上万个高薪工作……因此,您可以通过玩Minecraft来学习它,这可能会让您感到惊讶。

Microsoft MineCode for Minecraft致力于通过有趣,免费的项目将软件开发的世界带给任何人和每个人,使您的代码栩栩如生,让您在块状世界中眼前一亮。

什么是Microsoft MakeCode? Microsoft MakeCode Minecraft徽标

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

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

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

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

设置:代码连接和新世界

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

选择您的Minecraft版本,然后按照Minecraft Windows 10的MakeCode安装程序页面上列出的步骤进行安装和运行代码连接。

在运行Code Connection的情况下,启动Minecraft并创建一个启用了作弊功能的新世界(“播放”>“世界”>“新建”>“创建新世界”>“创建” )。必须打开“激活作弊”才能访问MakeCode的全部功能。

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

相关:《我的世界》终极命令备忘单

既然已经建立了代码连接,一个新世界正在等待着您,那么您就可以开始学习编码了!

Minecraft MakeCode:鸡雨

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

相关:想学习编程吗?您应该知道的关键术语

我们还将对“变量”和“功能”(这是计算机科学的两个关键组成部分)进行基本的研究。完成脚本编写后,您还将拥有大量的浮动小鸡。

如果您的目标是创建成熟的mod,这听起来可能并不多,但是看到您的代码栩栩如生是一种令人难以置信的感觉,它吸引了许多工程师。这是您的第一步!

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

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

  1. 首先,我们使用mobs.spawn()调用对象的函数。这就是我们指定希望计算机执行的操作。我们希望Minecraft产生生物。
  2. 太好了,但是什么样的暴民?在这里,我们指定一个变量-CHICKEN-告诉计算机我们要生成的生物。
  3. mobs.spawn()具有两个参数:mob类型和位置。我们仍然需要告诉计算机我们希望生物在何处产卵。我们使用pos(0,10,0)进行此操作,其中 0,10,0 是相对于您的Minecraft角色的XYZ坐标。
 mobs.spawn(CHICKEN, pos(0, 10, 0))

单击“播放”按钮以运行您的代码。切换回Minecraft并查找!如果一切顺利,您就产生了一个羽毛羽毛的朋友。

如果我们想要更多的鸡(坦白地说,谁不想要),该怎么办?我们是否应该只复制并粘贴几次此代码,然后再次单击run?可以,但是可以,但是不应该-在DRY(不要重复自己)上学习,这是早期学习编码的一个不错的口号。这将使您成为一个更有效率的开发人员。

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

“ for”循环将运行我们放入其中的代码,并执行指定次数的迭代(在本例中为100)。

  1. for(){}开头。花括号用于定义此循环的范围-花括号内的任何代码将多次运行。
  2. 我们需要告诉计算机该代码应运行多少次。在括号内,使用let创建一个变量,并将该变量设置为0 。然后,通过包含i <100,指定此循环应运行多少次。最后,我们指定在每次迭代结束时应执行的操作-我们变量的值将增加1( i ++ )。
  3. 将上一步的代码粘贴到花括号中。确保按照指示缩进。
 for (let i=0; i<100; i++) {
mobs.spawn(CHICKEN, pos(0, 10, 0))
}

单击播放按钮,然后切换回Minecraft。鸡雨!

Minecraft的MakeCode: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() 。指定要使用的项目(在本例中为CLOCK) ,并设置在与项目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语句未得到满足(当前是游戏中的夜间),其他代码将运行。

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

这种逻辑上的可能性是无限的。使用左侧的菜单查看各种命令和变量。弄脏您的手;找出有效的方法和无效的方法(看起来应该有效但仍然无效的方法)。这就是探索计算机科学领域的意义。

《我的世界》迷你游戏的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. 接下来,我们使用mobs.spawn()函数调用设置一个for循环以生成32个蝙蝠。我们使用randpos()来指定蝙蝠能够产卵的位置范围。这将导致它们意外地聚集在您周围。
  3. 现在我们建立了点跟踪算法。初始化一个值为0变量。现在创建一个跟踪每只蝙蝠击落2点的函数。我们使用模板文字将字符串文本(“ 2点!”总计:)与变量的值($ {points})组合在一起。
  4. 创建与步骤3类似的功能以清除总分。
  5. 现在创建在其中运行这些功能的实例。我们希望addPoints在蝙蝠被杀死时运行,所以我们使用mobs.onMobKilled(BAT,addPoints) 。当您在聊天中键入“ clearPoints”时,我们希望clearPoints能够运行。

单击播放,并获得尽可能多的积分!我建议在大房间里玩(也许会向蝙蝠扔一些障碍,因为在外面玩会使蝙蝠飞到远方太容易了。

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

Minecraft代理的MakeCode

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

MakeCode提供了有关Agent Checkers的指导性教程,可以在您的Agent上导航一个迷宫,并且还提供了大量与Agent相关的源代码,您可以根据需要修改它们。

深入研究JavaScript

我们希望MakeCode for Minecraft引起您的编码兴趣!我们肩负创建新一代程序员的使命。

当您练习一些重要的JavaScript方法时,我们只是在本文中研究了JavaScript冰山一角。如果您想学习JavaScript以准备工作,则应该学习JS如何与HTML和CSS等其他网络技术进行交互。您也应该研究常见的数据结构和算法。