Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 如何在Lua中显示调试信息或等效的console.log_Debugging_Lua_Console.log_Love2d - Fatal编程技术网

Debugging 如何在Lua中显示调试信息或等效的console.log

Debugging 如何在Lua中显示调试信息或等效的console.log,debugging,lua,console.log,love2d,Debugging,Lua,Console.log,Love2d,我正在使用Lua和LOVE2D创建许多游戏,但每当我实现一个新函数并想测试它时,或者只是想知道Lua中某个变量的值,我要么在游戏屏幕上显示它,要么只是希望它能工作 现在我的问题是。。。 有没有办法在终端或其他地方显示一些信息,例如变量值或其他信息?就像javascript中的console.log,它在浏览器的javascript控制台中显示一些内容。那么,有没有办法做到这一点,是卢阿??使用LOVE2D 我使用的是Mac,所以我有一个终端,而不是命令提示符。有没有办法在那里显示一些内容?其他任

我正在使用Lua和LOVE2D创建许多游戏,但每当我实现一个新函数并想测试它时,或者只是想知道Lua中某个变量的值,我要么在游戏屏幕上显示它,要么只是希望它能工作

现在我的问题是。。。 有没有办法在终端或其他地方显示一些信息,例如变量值或其他信息?就像javascript中的
console.log
,它在浏览器的javascript控制台中显示一些内容。那么,有没有办法做到这一点,是卢阿??使用LOVE2D


我使用的是Mac,所以我有一个
终端
,而不是命令提示符。有没有办法在那里显示一些内容?其他任何地方也可以,我只需要看看这些值是否如预期的那样。

使用
conf.lua
文件到EANABLE控制台,然后您应该能够使用标准的
print()
。您可以阅读wiki条目

您只需将
conf.lua
文件添加到
main.lua
所在的位置即可。您的文件可能很简单,如下所示:

function love.conf(t)
    t.console = true
end
但是,您可以从上面的链接复制整个配置文件,并编辑您需要的内容

我不能完全确定这一点,因为我无法访问Mac,但控制台在默认情况下是禁用的,即使在Windows上,在打开它之前也不会显示任何打印

或者您也可以像某些游戏一样在游戏中显示调试信息。 我喜欢做的是为记录每个循环中发生的事件添加
debugVariable={}
,为很少发生的事件添加
debugPermanent={}
。可能会添加方便的函数来写入变量:

function debugAddVariable(str)
  table.insert(debugVariable, str)
end
--..and similarly for debugPermanent
现在是绘制调试信息的函数:

function debugDraw()
  love.graphics.push()  --remember graphics state

  love.graphics.origin()  --clear any previous transforms

  love.graphics.setColor(--[[select color for debug info]])
  love.graphics.setFont(--[[select font for debug info]])

  for i, v in ipairs(debugPermanent) do
    love.graphics.print(v)
    love.graphics.translate(0, --[[fontHeight]])
  end
  for i, v in ipairs(debugVariable) do
    love.graphics.print(v)
    love.graphics.translate(0, --[[fontHeight]])
  end
  
  debugVariable = {}   --clear debugVariable to prepare it for the next loop
  love.graphics.pop()  --recall graphics state
end
我们在
love.draw()的末尾调用这个draw函数,文本就会出现

显然,这种方法可以被进一步改进,几乎是无限的,显示特定的变量,为一些其他变量添加图表,以澄清您想要显示的信息,但这有点超出了问题的范围


最后请随时检查用户提交的调试库。

打印('variable:',variable)
或者非常感谢您!即使在使用MAC电脑时,它也对我有效!