我正在 Lua 和 LOVE2d 中遇到错误:“尝试将 nil 与数字进行比较”
2021-12-5 16:19:34
收藏:0
阅读:238
评论:4
我正在尝试用 lua 和 love 制作我的第一个游戏。游戏是一个简单的按钮点击器,它计算您点击随机出现按钮的次数。我正在尝试在屏幕上添加一个倒计时计时器(最终使得在计时器归零时出现结束屏幕)。
function love.update(dt)
t = t + 0.01
end
function love.load (timer)
while t > 0 do
if t % 1 == 0 then
timer = 1 + timer
end
end
end
但我得到了这个错误:“尝试将 nil 与数字进行比较”
我搜索并找到了tonumber()
,但我不知道如何正确使用它。
我甚至不确定这是否是制作计时器的最佳/一种方法……请帮忙?
原文链接 https://stackoverflow.com/questions/70236187
点赞
stackoverflow用户17783369
尝试添加:
function love.load()
t = 0
end
我也注意到了 love.load()
中的 while t > 0 do
,它不会按照你的期望工作,因此请尝试将其放在 love.update(dt)
中。
2022-05-02 15:43:27
stackoverflow用户20422121
但是如果你想要 while 循环永远循环下去,你可以这样写:
While true do
timer = timer + 1
wait(1)
end
如果这不能解决问题,请尝试使用以下代码:
While true do
timer = timer + 1
task.wait(1)
end
2022-11-05 02:15:58
stackoverflow用户20422121
如果你想让它倒计时,使用 for 循环。
for i=1,10,-1 do
timer = i
wait(1)
end
2022-11-05 02:19:44
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在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 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
爱会为您调用
love.load
。当评估您的 while 条件t > 0
时,它会抛出此错误,因为 t 不是数字,而是 nil 值。在比较它与另一个数字之前,您需要使用数字值初始化 t。我并不是有意冒犯,但是您的代码并没有太多意义。
首先,您没有使用值初始化
t
。因此,您无法对其执行任何操作。function love.update(dt) t = t + 0.01 end
love.load 在游戏开始时执行一次。
timer
实际上是一个包含游戏命令行参数的表值。因此,通过将其增加 1 没有任何意义。function love.load (timer) while t > 0 do if t % 1 == 0 then timer = 1 + timer end end end
即使
t
是一个数字,t % 1
总是0
。因此,将其与0
进行比较没有意义。此外,您的代码除了试图分别增加值 1 或 0.01 之外,什么也没有做。确保您查阅 love 和 Lua 手册以获取您使用的所有内容。
https://love2d.org/wiki/love.run <- 这非常重要,以便您了解这些函数的执行方式。
https://love2d.org/wiki/love