如何在 Microsoft MakeCode 中为 micro:bit 创建全局变量?

Posted

技术标签:

【中文标题】如何在 Microsoft MakeCode 中为 micro:bit 创建全局变量?【英文标题】:How do you create global variables in Microsoft MakeCode for micro:bit? 【发布时间】:2021-11-10 16:35:42 【问题描述】:

我目前正在尝试在 micro:bit 中创建蛇。但是一个问题是,当我使用 if 语句来检测蛇是否正在触摸苹果时,它会工作一次,但随后我调用了函数

function createApple() 
    let apple = game.createSprite(randint(0, 5), randint(0, 5));

使用 let 语句创建变量使其成为仅与函数内部的其他语句一起使用的局部变量,但是当我尝试使用 var 创建变量时,它说我必须使用 let 语句定义变量。有没有办法在函数和其他有效的代码块中创建全局变量? (请以不会对我的情况主观的方式回答它,并且会涉及到包括我自己在内的人们的许多类似情况)

(如果有人回答,这是我的 if 语句)

loops.everyInterval(1, function () 
    if (snakeHead.isTouching(apple)) 
        apple.delete();
        createApple();
    
);

【问题讨论】:

【参考方案1】:

您可以在函数外部声明变量以使其成为全局变量。如果以空的全局变量开头,则必须在:后面添加变量的类型

let apple : game.LedSprite

function createApple() 
    apple = game.createSprite(randint(0, 5), randint(0, 5));

如果您不知道变量的类型(在本例中为 game.LedSprite),您可以将鼠标悬停在函数 createSprite 上找到它,请参见截图:

【讨论】:

当我使用let apple 时,它会说,“变量'apple' 隐含地具有'any' 类型。”有可能解决这个问题吗? 对不起,是的,如果您不立即填写变量的类型,则必须添加它。我编辑了答案。

以上是关于如何在 Microsoft MakeCode 中为 micro:bit 创建全局变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 MakeCode 在 Minecraft 中放置半块板

如何制作 MicroBit MakeCode 批量代码创建器?

如何在 Delphi 中为 Microsoft 的 Surface Pen 编程?

如何在 Microsoft Teams 中为 @提及创建子组

构建 MakeCode 包

MakeCode EV3 电机反转不适用于 motor.xx.tank