我正在尝试正确绘制复选框,但我想使其成为一个函数
function drawCheckBox(x, y, distance, title, variable)
local mousePos = input:get_mouse_pos()
local checkBoxColor
local checkSize = 15;
if (mousePos.x > x and mousePos.x < x + checkSize) and (mousePos.y > y and mousePos.y < y + checkSize) then
if input:is_key_down( 0x1 ) then
variable = not variable
end
end
if variable == true then
checkBoxColor = colors.white
else
checkBoxColor = colors.red
end
render:rect_filled( x, y, checkSize, checkSize, checkBoxColor)
render:text( font, x + distance, y, title, colors.white )
end
可以这样称呼,我在函数中有一个全局变量作为“ variable”,以便可以引用复选框的布尔值
drawCheckBox(100, 100, 50, 'Test One', checkboxVars.testOne)
但是问题是当我按下复选框时,它不会更改全局
variable
是全局变量的copy。更改副本不会影响原始变量。
drawCheckBox(100, 100, 50, 'Test One', checkboxVars)
在本地范围内具有:
variable.testOne = not variable.testOne
if variable.testOne == true then
checkBoxColor = colors.white
else
checkBoxColor = colors.red
end
当然,如果这符合您的情况。