minetest循环与lua表中的post_effect_color不起作用。

有人可以帮我让 post_effect_color 与表格一起运行吗?

local UNDERWATERCOLOR = {
    "a=64, r=1, g=255, b=1", --绿色
    "a=64, r=1, g=1, b=255" --蓝色
}

for i = 1, 2 do

    local underwatercolor = UNDERWATERCOLOR[i]

    -- 水
    minetest.register_node("coloredwater:water_source_" .. color .. "", {
            post_effect_color = {".. underwatercolor .."},
    })

end

想让水下颜色的颜色值使用在表格中的 post_effect_color。

或者换句话说,在 for 循环运行时,当它第一次循环时,我的想法是输入 post_effect_color = {".. underwatercolor .."} 的值应该是 post_effect_color = {a = 64,r = 1,g = 255,b = 1},等等。

点赞
用户1604177
用户1604177

你应该将颜色存储为表格而不是字符串,然后直接插入定义中。我还通过从键中提取来修复了 color 不可用的问题。

local UNDERWATERCOLOR = {
    green = { a=64, r=1, g=255, b=1 } ,
    blue  = { a=64, r=1, g=1,   b=25 },
}

-- 遍历水源
-- 颜色将是键 (green 或 blue)
-- underwatercolor 将是值 (上面的其中之一表)
for color, underwatercolor in pairs(UNDERWATERCOLOR) do
    -- 水
    minetest.register_node("coloredwater:water_source_" .. color .. "", {
            post_effect_color = underwatercolor,
    })
end
2018-04-14 15:48:15