Project1

标题: 如何计算出文字的实际宽度? [打印本页]

作者: sxjkjly8010    时间: 2023-10-5 16:56
标题: 如何计算出文字的实际宽度?
想实现tp数字和蓝色数字紧贴的效果,原版的draw_text似乎没法办到中途改颜色?所以就用了这种办法,在文字正常情况下没问题,但超出宽度限制后就会开始拉伸,但拉伸后的结果似乎不是一个确定值,想不到怎么算出来实际宽度
作者: AshhsA    时间: 2023-10-5 17:19
draw_text(rect, str[, align])
在位图的矩形 (x, y, width, height) 或 rect(Rect)中描绘字符串 str 。

若 str 不是字符串对象,则会在执行之前,先调用 to_s 方法转换成字符串。

若文字长度超过区域的宽度,文字宽度会自动缩小到 60%。

文字的横向对齐方式默认为居左,可以设置 align 为 1 居中,或设置为 2 居右。垂直方向总是居中对齐。

此处理需要花费时间,因此不建议每帧重绘一次文字。

你可以参考一下这个
作者: sxjkjly8010    时间: 2023-10-5 17:21
AshhsA 发表于 2023-10-5 17:19
你可以参考一下这个


实际上就是我发的图片,我已经翻过帮助了,但实际上最后的结果并不一定是60%……我看了这个贴子,RGSS3因为有描边的关系,实际宽度应该是完全不可控的。https://rpg.blue/thread-409856-1-1.html

作者: AshhsA    时间: 2023-10-5 17:55
那最好还是试着写一个逐字绘制(参考draw_text_ex)比较好
作者: 喵呜喵5    时间: 2023-10-5 19:22
超出宽度后你打算怎么绘制?就现在这种压缩的方式绘制吗?
作者: sxjkjly8010    时间: 2023-10-5 19:26
喵呜喵5 发表于 2023-10-5 19:22
超出宽度后你打算怎么绘制?就现在这种压缩的方式绘制吗?


作者: 喵呜喵5    时间: 2023-10-5 19:37
sxjkjly8010 发表于 2023-10-5 19:26

不考虑脚本通用的情况下,我推荐直接写脏代码,
把所有文字位数的情况直接本地算一遍数值写死到代码里,
能最简单粗暴解决你的问题

反正这屁大的地方文字可能出现的情况从1个字到10个字顶天了,再多显示出来玩家又看不清也没什么意义
作者: sxjkjly8010    时间: 2023-10-5 19:58
喵呜喵5 发表于 2023-10-5 19:37
不考虑脚本通用的情况下,我推荐直接写脏代码,
把所有文字位数的情况直接本地算一遍数值写死到代码里,
...


但是它同样位数的宽度可能是完全不一样的,我已经放弃了,稍微空一点就空一点吧,反正前面宽度在42以内效果正常,超过42的时候一般玩家也攒不到那么多




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1