[英]How to display debug info or console.log equivalent in Lua
我正在使用 Lua 和 LOVE2D 創建許多游戲,但是每當我實現一個新的 function 並想對其進行測試,或者只是想知道 Z0AE9478A1DB9D1E2C6Z,IEA49EAC1C 中的變量值時,它希望它顯示在游戲屏幕上作品。
現在我的問題是......有沒有辦法在終端或其他地方顯示一些信息,例如變量值或其他東西? 就像 javascript 中的console.log
一樣,它在瀏覽器的 javascript 控制台中顯示一些內容。 那么,有沒有辦法做到這一點是Lua? 使用 LOVE2D?
我使用的是 Mac,所以我有一個terminal
而不是命令提示符。 有沒有辦法在那里顯示一些內容? 其他任何地方也可以,我只需要看看這些值是否符合預期。
使用conf.lua
文件來啟用控制台,那么您應該可以使用標准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 來繪制我們的調試信息:
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()
的末尾將此繪制稱為 function,文本應該會出現。
顯然,這種方法幾乎可以無限地進一步細化,顯示特定變量,為其他一些變量添加圖表以闡明您想要顯示的信息,但這不在問題的 scope 范圍內。
最后隨意在這里檢查用戶提交的調試庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.