Как вы создаете глобальные переменные в Microsoft MakeCode для micro:bit?

#javascript #bbc-microbit #makecode

Вопрос:

В настоящее время я пытаюсь создать змею внутри микро:бита. Но одна проблема заключается в том, что когда я использую оператор if, чтобы определить, касается ли змея яблока, это сработает один раз, но затем я вызываю функцию, которая говорит

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

Создание переменных с помощью оператора let делает его локальной переменной, работающей только с другими операторами внутри функции, но когда я пытаюсь создать переменную с помощью var, в ней говорится, что я должен определять переменные с помощью оператора let. Есть ли способ создать глобальные переменные внутри функций и других блоков кода, которые работают? (Пожалуйста, ответьте на это так, чтобы это не было субъективно для моей ситуации и охватывало множество подобных сценариев для людей, включая меня)

(Вот мое утверждение «если», если оно каким-то образом требуется от кого-то, кто отвечает)

 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 , см. Скриншот:

введите описание изображения здесь

Комментарии:

1. Когда я использовал let apple его, он говорит: «Переменная»apple» неявно имеет тип «любой»». Возможно ли это исправить?

2. Извините, да, вам нужно добавить тип переменной, если вы не заполните ее немедленно. Я отредактировал ответ.