Love2D:在love.load中创建变量与在main.lua文件顶部创建变量有何区别?
2016-10-17 18:2:25
收藏:0
阅读:84
评论:3
如果您查看[love.load](https://love2d.org/wiki/love.load)的文档,它会说
这个函数在游戏开始时仅调用一次。
除此之外,它没有其他任何信息。 它还有一个参数,即命令行参数。
因此,如果您不使用参数,则以下两个之间有何区别:
x = 5
-- rest of code
和
function love.load()
x = 5
end
-- rest of code
避免使用 love.load 的最大好处是可以使 x 变成局部变量而不是全局变量。 是否有使用 love.load 的好处?
点赞
用户7114852
就像你自己所说的,love.load()在开始时只运行一次,因此非常适合初始化变量。在该函数之外设置的所有内容可能会被加载更多次。
尝试创建一个conf.lua文件并激活控制台。然后在love.load()之外打印()某些内容,你会看到。
-- conf.lua
function love.conf(t)
t.console = true
end
-- main.lua
print("Hello World!")
function love.load()
end
对我来说,每次启动游戏时它总是打印“Hello World!”两次。
就像Paul Kulchenko所说的,对于简单的值,可能不会有任何区别,但你永远无法知道... ;)
2016-11-04 12:09:42
用户7170955
在运行 main.lua 之后,Love 会调用 love.run,其中包含主游戏循环。love.run 的第一件事情之一,就是调用 love.load(...),... 包含游戏的命令行参数,这些参数可能会对你有用。
这意味着,love.load 在所有 main.lua 代码之后运行,但早于 love.draw、love.update 等开始被调用。
这个特性的价值,主要取决于你自己。
2016-12-02 04:31:41
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

我认为对于简单值(例如您在示例中展示的值),没有任何区别,但是对于使用
love.graphics或其他组件的更复杂的代码,需要从love.load中执行,因为它保证引擎在那个时候已经被正确设置和初始化了。