Files
ComputerCraft-Utf8/OriginalCode/example_scrollingtext.lua
2025-11-12 12:06:16 +08:00

50 lines
1.2 KiB
Lua

---@module "cctAPI"
local monitor = peripheral.find("monitor")
local computer = term.redirect(monitor)
-- suggested
monitor.setTextScale(0.5)
term.clear()
term.setCursorPos(1, 1)
local M = require("utf8textutils")
---@param str string
---@param fps number films per second
local function pirntScrolling(str, fps)
str = str .. " "
local termWidth = term.getSize()
local cfg1 = M.getCfg("noauto")
cfg1.masking = { 2, 2, termWidth - 1, cfg1.fontFamily.maxHeight + 1 }
local spf = 1 / fps
---@type FontFamily
local fontFamily = cfg1.fontFamily
local wid = 0
for _, code in M.codes(str) do
local bm = M.getCharMap(code, fontFamily)
wid = wid + #bm[1]
end
local cursorX = 2
local cursorY = 2
local maskingWidth = cfg1.masking[3] - cfg1.masking[1]
local repeatNum = math.max(maskingWidth, wid)
while true do
cursorX = 2
for i = 1, repeatNum do
term.setCursorPos(cursorX, cursorY)
M.printUtf8(str, cfg1)
term.setCursorPos(cursorX + repeatNum, cursorY)
M.printUtf8(str, cfg1)
cursorX = cursorX - 1
os.sleep(spf)
end
end
end
pirntScrolling("hello -- by AAAB60", 5)