【问题标题】:Lua: When does it call functions?Lua:什么时候调用函数?
【发布时间】:2013-03-01 13:38:24
【问题描述】:

顺便使用 Love 框架。

好的,所以我正在寻找创建一个随机地图生成。我显然只希望它绘制一次,所以我尝试建立一个非常基本的结构。哪个不起作用,我不知道为什么。

function love.load()
    testVar = 1
end

function love.draw()
    if testVar == 1 then
        testFunction()
        love.graphics.print("Update", 20, 200)
    end

    love.graphics.print(testVar, 100, 100)
end

function testFunction()
    love.graphics.print("Success", 20, 300)
    testVar = 0
end

所做的只是打印“0”,这要归功于在绘图函数中打印 testVar up 的命令。所以它似乎在没有实际运行 testFunction 的情况下更新了 testVar 值。这和Lua有关吗?

对于不熟悉 Love 的人,love.draw 每帧都会调用一次,love.load 只是最初。

【问题讨论】:

  • “爱情框架”? :D 第一次听到...
  • @ShashankKadne:从技术上讲,Love 中的o 有一个umlaut,也许是因为如果你不知道如何用你的键盘...
  • 在调用 draw 之前清除窗口。它正在打印"Success",但您看不到它。尝试打印到控制台。
  • 哦,我可能误会了draw。谢谢。我想这意味着我需要通过绘图功能显示地图。

标签: lua love2d


【解决方案1】:

此代码按预期工作。只是love.draw 每帧都被调用(每秒多次),所以第一帧的输出很快被下一帧覆盖。通常,当您需要更改您的状态(例如,基于用户输入)时,您使用 love.update 并使用 love.draw 在屏幕上(每一帧)绘制该状态。

【讨论】:

    猜你喜欢
    • 2019-09-04
    • 2019-04-07
    • 1970-01-01
    • 2012-05-14
    • 2015-09-23
    • 2014-05-28
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多