Lua/Love2D - 动态变量字符串索引错误

最近,我决定尝试Lua/Love2D。我决定制作一个小游戏,并且正在寻找一种方法来储存NPC及其数据。其工作原理相当简单:每个NPC都有一个存储其标识符的内存插槽。 为此,我决定研究动态变量。我已经实现了它们,但是不起作用。我收到了错误“尝试索引字符串值”的错误消息。 代码在这里,错误在第13行。我做错了什么?

npcmem01 = {visible="false", x=0, y=0, npctype="", weapon=0}
npcmem02 = {visible="false", x=0, y=0, npctype="", weapon=0}
npcmem03 = {visible="false", x=0, y=0, npctype="", weapon=0}
npcmem04 = {visible="false", x=0, y=0, npctype="", weapon=0}
local vars = {"npcmem"}

function SpawnNPC(npctype, x, y, slot)

    if npctype == "Civilian" then
        ("npcmem" .. slot).npctype = "Civilian"
    end

end
点赞
用户735446
用户735446

要实现(动态变量名)你需要使用环境表_G

_G["npcmem" .. slot].npctype = "Civilian"

不过,你真的应该使用一个简单的数组:

npcs = {};

function SpawnNPC(npctype, x, y, slot)
    local tmp = {visible="false", x=0, y=0, npctype="", weapon=0}
    if npctype == "Civilian" then
        tmp.npctype = "Civilian"
        npcs[slot] = tmp
    end
end
2014-04-13 12:07:26