Lua: установить значение на имя таблицы из переменной - PullRequest
0 голосов
/ 25 августа 2018

Я довольно новичок в Lua, но сейчас пишу экран инвентаря для проекта tic-80. Я пытался создать функцию для рисования кнопок, которые изменяют значение переменной. Гугл и некоторые эксперименты привели к этому:

function drawButton(x,y,sprite,target,action). 
    [Drawing button stuff here]
    if md==true and mx<=x+12 and mx>=x and my<=y+12 and my>=y then
        _G[target]=action
    end
end

Это прекрасно работает для переменной:

drawButton (12,12,0,"eqf",1)

Но когда я пытаюсь изменить значение в таблице, он ничего не делает.

drawButton (12,12,0,"actors.player.eqf",1)

Есть ли лучший подход, который также поддерживает таблицы? Заранее спасибо!

1 Ответ

0 голосов
/ 25 августа 2018

"actors.player.eqf"

Это не относится к полю во вложенных таблицах.

Если вы хотите изменить поле в произвольной таблице, вам нужно передать и таблицу, и требуемый ключ для обновления. Примерно так:

function drawButton(x,y,sprite,object,target,action)
    -- [Drawing button stuff here]
    if md==true and mx<=x+12 and mx>=x and my<=y+12 and my>=y then
        object[target]=action
    end
end

drawButton (12,12,0, _G, "eqf",1)
drawButton (12,12,0, actors.player, "eqf",1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...