从Lua中的函数更新全局变量

时间:2017-01-25 05:47:54

标签: lua game-engine

好吧这可能是一个愚蠢的问题,但我是编程的新手,所以在这里它gose。我已经编写了一个函数,我希望在RPG风格的游戏中使用它来使玩家基于exp升级

--sets the level based on exp
function levelCheck(exp,level) 
   repeat 
         c=math.sqrt(exp)-(level*4) 
            if ( c>=1 ) then 
               level=level+1 
               print("Congradulations level "..level) 
            end 
   until ( c<1) 
   return level
end

我希望这能更新水平变量全球我不确定我说得对,但请帮助。

2 个答案:

答案 0 :(得分:1)

每当您通过全局名称解决它们时,lua中的全局变量都会从该函数更新:

write-output

如果它是一个表,函数可以改变它的参数(实际上是它的参数的内容):

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

...它回答标题,但不是你遇到的问题。正如Nicol Boras评论的那样,如果你的f=function(t) t.variable=4 end 不仅仅是一个数字,你应该重新思考你的方式。

答案 1 :(得分:0)

它的真实水平不仅仅是一个数字,而且计划是将水平用作其他方程式中的变量,例如deff=level*tough+equipment,例如idk就是计划