Skip to content
pmgl edited this page Apr 7, 2022 · 1 revision

Lua

Настройка

Вы можете выбрать использование языка программирования Lua для любого из ваших проектов. Откройте вкладку настроек проекта, нажмите "Показать дополнительные параметры" и выберите Lua в качестве языка программирования.

Ваш проект Lua microStudio может быть экспортирован в любую среду (HTML5, Windows, Mac, Linux, Android...). Вы также можете использовать любой из API рендеринга для 2D или 3D, а также любую из предложенных дополнительных библиотек.

Советы

Вызов методов объектов

Будьте осторожны при вызове функций (методов) объектов в Lua, вы должны использовать : вместо ., как например:

screen:clear()
screen:drawSprite("icon",x,y,50)

Проверка пользовательского ввода

Пользовательский ввод может быть отсканирован в microStudio путем проверки полей в интерфейсах keyboard, touch, mouse или gamepad. Например, чтобы проверить, нажата ли клавиша A, вы можете проверить keyboard.A. Это поле может иметь 3 различных состояния:

  • если вы еще не нажимали A в текущей сессии, keyboard.A является неопределенным
  • keyboard.A равно 1 (true в microScript), если вы в данный момент нажимаете ее
  • keyboard.A равно 0 (false в microScript), если вы нажимали ее раньше и не нажимаете в данный момент.

Для проверки таких полей в Lua рекомендуется проверять равенство с 1:

  if keyboard.A == 1 then
    -- сделать что-нибудь, когда нажата A
  end

Создание экземпляров классов

Особенно при использовании альтернативных графических библиотек или дополнительных библиотек, вам может потребоваться инициализировать объекты JavaScript, как если бы вы использовали оператор new в JavaScript. Для этого просто вызовите new(class, arguments) для класса, который вы хотите инициализировать :

  light = new( BABYLON.HemisphericLight, "light", BABYLON.Vector3.new(0, 1, 0), scene)

Простой пример

init = function()
  x = 0
  y = 0
end

update = function()
  if keyboard.LEFT == 1 then x = x-1 end
  if keyboard.RIGHT == 1 then x = x+1 end
  if keyboard.UP == 1 then y = y+1 end
  if keyboard.DOWN == 1 then y = y-1 end
end

draw = function()
  screen:clear()
  screen:drawSprite("icon", x, y, 50)
end
Clone this wiki locally