函数内部的变量(Corona Lua)

时间:2018-11-14 03:51:23

标签: lua corona

我到处都在搜索有关如何在函数内更改变量的答案。我尝试了许多不同的解决方案,但到目前为止都没有奏效。

我的计划是在按下按钮时运行的函数中更改名为“ stateRed”的变量。运行该函数时,变量将变为“ READY”。然后,我将使用此变量运行单独的代码块(实际游戏)。其中有两个按钮。

我的代码如下:

function ReadyRed()
stateRed = 'READY'
stateBtnRed = widget.newButton
{
    defaultFile = "ready_red.png",
    overFile = "unready_red.png",
    label = "Ready",
    emboss = true,
    onPress = unreadyStateRed,
}
stateBtnRed.rotation = 90; stateBtnRed.width = 90; stateBtnRed.height = 90; stateBtnRed.x = display.contentWidth / 2 - 170; stateBtnRed.y = display.contentHeight - 270
return stateRed
end

function UnreadyRed()
local stateRed = 'UNREADY'
stateBtnRed = widget.newButton
{
    defaultFile = "unready_red.png",
    overFile = "ready_red.png",
    label = "Unready",
    emboss = true,
    onPress = readyStateRed,
}
stateBtnRed.rotation = 90; stateBtnRed.width = 90; stateBtnRed.height = 90; stateBtnRed.x = display.contentWidth / 2 - 170; stateBtnRed.y = display.contentHeight - 270
return stateRed
end 

启动游戏的代码如下:

if stateRed == 'READY' and stateBlue == 'Ready' then

1 个答案:

答案 0 :(得分:2)

如果变量stateRed是全局变量,则在变量名之前删除local关键字,即

function UnreadyRed()
    stateRed = 'UNREADY'
    ...
end

注意:

  • 由于stateRed是全局变量,因此您可能不需要在ReadyRedUnreadyRed函数中返回stateRed
  • 使用一种符号样式。我建议您Camel Case notation