尝试全球“ creatureBody”-无价值

时间:2019-05-05 22:12:01

标签: lua corona

我试图将我的信息封装在一个变量中,并且在我的Corona文件中工作很困难。

我已经删除了更改颜色的行,但是我仍然遇到某种功能错误

df[ , LD_votes:= y[order(district),SumV]]
df
   district party1 votes1 party2 votes2 party3 votes3 LD_votes
1:        A    Lab    188     LD    140    Con     23      140
2:        B    Con    200    Lab    164     LD     99       99

它总是会引发尝试访问全局变量的错误。在for循环中创建主体时,更改主体颜色的行特别带有问题。感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如您的错误消息所述:creatureBodynil,您正在尝试调用它。你不能那样做。考虑一下这段代码:

if hasParent == 1 then
    creature = 
    {
        creatureTitle = parent.creatureTitle;
        size =  parent.size;
        speed = parent.speed;
        x = xCoordinates;
        y = yCoordinates;
        creatureBody = display.newCircle(xCoordinates, yCoordinates, radiusCircle);
        creatureBody:setFillColor(parent);
    }
else
    creature =
    {
        creatureTitle = creatureIterator;
        creatureIterator = creatureIterator + 1;
        size = 1;
        speed = 1;
        x = xCoordinates;
        y = yCoordinates;
        creatureBody = display.newCircle(xCoordinates, yCoordinates, radiusCircle);
        creatureBody:setFillColor(red, green, blue);
    }
end

调用setFillColor时,在本地或全局范围内没有任何creatureBody可用,这是预料之中的,因为未在提供的代码中的任何地方定义它。

您可以通过例如移出圈子构造函数调用:

local creatureBody = display.newCircle(xCoordinates, yCoordinates, radiusCircle)
creature =
{
    creatureTitle = creatureIterator;
    creatureIterator = creatureIterator + 1;
    size = 1;
    speed = 1;
    x = xCoordinates;
    y = yCoordinates;
    creatureBody = creatureBody;
    body:setFillColor(red, green, blue);
}

请注意,将setFillColor的返回值插入creature中。真的让我怀疑这是否是我们期望的行为。

如果您无法理解为什么creatureBody不可用或为什么setFillColor返回将被插入creature中,请参考Lua Reference Manual §3.4.9