查看: 1716|回复: 7

[已经过期] 如何计算出文字的实际宽度?

[复制链接]
梦石
0
星屑
1581
在线时间
253 小时
注册时间
2019-4-11
回帖
32
发表于 2023-10-5 16:56:12 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
想实现tp数字和蓝色数字紧贴的效果,原版的draw_text似乎没法办到中途改颜色?所以就用了这种办法,在文字正常情况下没问题,但超出宽度限制后就会开始拉伸,但拉伸后的结果似乎不是一个确定值,想不到怎么算出来实际宽度 4.png 3.png 2.png 1.png
梦石
0
星屑
983
在线时间
71 小时
注册时间
2021-4-13
回帖
34
发表于 2023-10-5 17:19:46 | 显示全部楼层
draw_text(rect, str[, align])
在位图的矩形 (x, y, width, height) 或 rect(Rect)中描绘字符串 str 。

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

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

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

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

你可以参考一下这个
回复

使用道具 举报

梦石
0
星屑
1581
在线时间
253 小时
注册时间
2019-4-11
回帖
32
 楼主| 发表于 2023-10-5 17:21:44 | 显示全部楼层
AshhsA 发表于 2023-10-5 17:19
你可以参考一下这个


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

使用道具 举报

梦石
0
星屑
983
在线时间
71 小时
注册时间
2021-4-13
回帖
34
发表于 2023-10-5 17:55:07 | 显示全部楼层
那最好还是试着写一个逐字绘制(参考draw_text_ex)比较好
回复

使用道具 举报

梦石
1
星屑
23236
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2023-10-5 19:22:37 | 显示全部楼层
超出宽度后你打算怎么绘制?就现在这种压缩的方式绘制吗?
回复

使用道具 举报

梦石
0
星屑
1581
在线时间
253 小时
注册时间
2019-4-11
回帖
32
 楼主| 发表于 2023-10-5 19:26:17 | 显示全部楼层
喵呜喵5 发表于 2023-10-5 19:22
超出宽度后你打算怎么绘制?就现在这种压缩的方式绘制吗?

嗯
回复

使用道具 举报

梦石
1
星屑
23236
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2023-10-5 19:37:48 | 显示全部楼层

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

反正这屁大的地方文字可能出现的情况从1个字到10个字顶天了,再多显示出来玩家又看不清也没什么意义
回复

使用道具 举报

梦石
0
星屑
1581
在线时间
253 小时
注册时间
2019-4-11
回帖
32
 楼主| 发表于 2023-10-5 19:58:07 | 显示全部楼层
喵呜喵5 发表于 2023-10-5 19:37
不考虑脚本通用的情况下,我推荐直接写脏代码,
把所有文字位数的情况直接本地算一遍数值写死到代码里,
...


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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部