Lua中从函数更新全局变量

好吧,这可能是一个愚蠢的问题,但我刚开始学习编程,所以就问一下。我已经编写了一个函数,希望在RPG风格的游戏中使用它,根据经验让玩家升级

--根据经验值设置等级
function levelCheck(exp,level)
   repeat
         c=math.sqrt(exp)-(level*4)
            if ( c>=1 ) then
               level=level+1
               print("恭喜您升到了第 "..level .." 级")
            end
   until ( c<1)
   return level
end

问题是我希望它全局更新等级变量,我不确定我说得对不对,请帮忙。

点赞
用户4687565
用户4687565

Lua 中的全局变量在您使用它们的全局名称进行调用时,将从函数中更新:

variable=1
f=function(x) variable=x end
f()

如果参数是表,则函数可以更改其参数(实际上是其参数的内容):

f=function(t)
    t.variable=4
end

......这回答了标题,但并没有解决您的问题。正如尼古拉·博拉斯(Nicol Boras)所评论的那样,如果您的“级别”不只是一个数字,那么您应该重新考虑自己的方法。

2017-01-25 07:46:40
用户7467267
用户7467267

将下面翻译成中文并且保留原本的 markdown 格式

这是真的,级别不仅仅是一个数字,而是计划将级别用作其他方程式中的变量,例如deff=level*tough+equipment,例如idk,这就是计划。

2017-01-25 21:24:19