Lua - Computercraft - Minecraft (Функции) - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь настроить некоторые функции в программе, с которой я играю, которая контролирует мою турбину Extreme Reactors (формально большие реакторы).Большинство функций, которые я пытаюсь сделать, довольно просты, но избавляют меня от необходимости выстраивать определенные блоки кода сто раз.

По сути, я хотел бы прекратить использоватьmon.setCursorPos(x, y), где x и y - точная ось (например, mon.setCursorPos(1,9)) и замените ее на что-то более простое, например cursor(1,9).Проблема в том, что я не совсем уверен, как настроить функцию ...

function cursor()
  mon.setCursorPos()
end

Выше не будет работать должным образом, возникнет ошибка из-за пропущенного строкового значения в () из setCursorPos вызов API.Я все еще довольно новичок в LUA и, честно говоря, не очень хороший кодер, но пытаюсь научиться не быть таким грязным и рисовать вещи там, где мне не нужно.Любая помощь / советы приветствуются, счастливого кодирования всем!

1 Ответ

0 голосов
/ 27 ноября 2018

Чтобы передать аргументы, вам сначала нужно определить их в своей собственной функции-обертке (здесь x и y) :

function cursor(x, y)
    mon.setCursorPos(x, y)
end

Если вы не знаете, сколькоИмеющиеся аргументы: вы можете использовать синтаксис varargs ..., чтобы захватить аргументы в cursor и передать их mon.setCursorPos:

function cursor(...)
    mon.setCursorPos(...)
end

Но более простой способ - просто сделать

cursor = mon.setCursorPos

, так что cursor просто ссылается на ту же функцию, что и mon.setCursorPos.

...