2

我正在制作一款有点晦涩且绝版的游戏,Creatures & Cultists,可在桌面模拟器上使用。播放器板有各种文本框。对于其中两个文本框,当没有足够的空间显示玩家输入的内容时,我需要缩小文本的大小。

我用 C# 编写了程序,并且有一个内置的自动调整大小功能,可以针对文本框等字段进行切换。桌面模拟器 LUA 和 API 是否允许这样的功能?

我正在使用 Stump 先生的文本框模板。

文本框之一的参数:

--name Credo
        {
            pos       = {0.35,0.12,0.93},
            rows      = 1,
            width     = 6000,
            font_size = 450,
            label     = "",
            value     = "Enter in Cult Credo Here",
            alignment = 2,
            rotation  = {0,0,0},
            height    = 500,
            scale     = {0.1,0.0075,0.1},
        },

这些参数从 Stump 先生传递给 create_text-box 函数:

function create_textboxes()
for i, data in ipairs(ref_buttonData.house_inputs) do
    --Sets up reference function
    local funcName = "textboxes"..i
    local func = function(_,_,val,sel) click_textboxes(i,val,sel) end
    self.setVar(funcName, func)

    self.createInput({
        input_function = funcName,
        function_owner = self,
        label          = data.label,
        alignment      = data.alignment,
        position       = data.pos,
        scale          = buttonScale,
        width          = data.width,
        height         = (data.font_size*data.rows)+24,
        font_size      = data.font_size,
        color          = buttonColor,
        font_color     = buttonFontColor,
        value          = data.value,
        rotation       = data.rotation,
        height         = data.height,
        scale          = data.scale,
    })
end
end

谢谢你的帮助。

4

1 回答 1

0

据我发现,这不能使用在 Lua 中创建的输入来完成。然而,这种效果可以通过利用UI API来实现,它允许您使用 XML 创建元素。您需要创建如下内容:

<InputField resizeTextForBestFit="true"/>

resizeTextForBestFit 属性可以在UI API的属性部分中找到。

在 Tabletop Simulator 中运行需要大量代码,因此对于此代码的深入示例,您可以参考我使用上述 XML 解决方案制作的字符表。

于 2021-09-03T15:41:57.887 回答