If you've been working with Love2d, you might have noticed that there isn't an actual debug console, and print() calls will not get displayed anywhere.
However, it's pretty easy to make your own system to display single-line output messages.
Here is an example of one.
trace = { textl = { }, stylel = { }, styles = { white = { r = 255, g = 255, b = 255 }, red = { r = 255, g = 127, b = 127 }, green = { r = 191, g = 255, b = 127 }, blue = { r = 127, g = 159, b = 255 }, -- add your own style definitions here default = { r = 224, g = 224, b = 224 } }, count = 0, limit = 32 } function trace.print(text, style) if (style == nil) then -- no style given style = trace.styles.default end if (trace.count > trace.limit) then -- scroll elements table.remove(trace.textl, 1) table.remove(trace.stylel, 1) else -- add element trace.count = trace.count + 1 end -- write data: trace.textl[trace.count] = text trace.stylel[trace.count] = style end function trace.draw(x, y) local i, s, z, prefix prefix = '' -- default position parameters: if (x == nil) then x = 16 end if (y == nil) then y = 16 end -- draw lines: for i = 1, trace.count do s = trace.stylel[i] z = prefix .. trace.textl[i] -- string to draw -- choose white/black outline: if ((s.r < 160) and (s.g < 160) and (s.b < 160)) then love.graphics.setColor(255, 255, 255) else love.graphics.setColor(0, 0, 0) end -- draw outline: love.graphics.print(z, x + 1, y) love.graphics.print(z, x - 1, y) love.graphics.print(z, x, y + 1) love.graphics.print(z, x, y - 1) -- draw color: love.graphics.setColor(s.r, s.g, s.b) love.graphics.print(z, x, y) -- concatenate prefix: prefix = prefix .. '\n' end end
So you get trace.print which adds a line of text to list, and trace.draw, which must be called when you need your messages to be drawn.
Below a sample implementation (seen on screenshot) follows:
require 'trace' function love.mousepressed(x, y, b) trace.print('Mouse "' .. tostring(b) .. '" clicked at (' .. tostring(x) .. ', ' .. tostring(y) .. ')', trace.styles.green) end function love.keypressed(k) trace.print('Key pressed: ' .. tostring(k), trace.styles.red) end function love.keyreleased(k) trace.print('Key released: ' .. tostring(k), trace.styles.blue) end function love.draw() trace.draw() end function love.load() love.graphics.setBackgroundColor(63, 63, 63) trace.print('Trace system online.', trace.styles.green) end