簡體   English   中英

如何在 Lua 中顯示調試信息或 console.log 等效項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM