Project1

标题: RGSS3中一个令人哭笑不得的BUG [打印本页]

作者: fux2    时间: 2017-8-5 10:28
标题: RGSS3中一个令人哭笑不得的BUG
最近一段时间研究了一下VA文字描绘相关的实现,发现一件很有趣的事情。

VA的描边(即Font.outline)实现方法是在原本的文字图形的四个角先描一次文字,
这样看来,所需的描绘空间(矩形)应该得向外扩大1像素才能把描边的内容也完整地显示出来。

那么我们看看他在小字号下的体现

(上图描边方法被我改成了上下左右描边而不是VA默认的四角描边,但所需空间是一模一样的)

一个很严重的问题,就是缺边少角,靠近边缘的像素都被吃掉啦!
期初我百思不得其解,认为可能是自己获取字体点阵的过程有问题,
直到我关闭了描边再进行测试,发现文字完整的被描绘出来了!

于是我更加确定了问题出现在描边上,仔细盘查之后,我惊了

VA默认在确认描边之后,对描绘矩形的操作竟然是尺寸缩小1!

我就开始思考,到底是eb的程序员脑子打铁呢,还是有什么特殊的设定,总之先修改成尺寸扩大1试试。
反复测试之后,没有出现任何问题,超过bitmap范围的描绘位置也会自动忽略。


到这里为止问题就解决了。
然而我怀疑这个问题不仅仅存在于VA,可能从VX开始就一直有这个BUG,因为没人发现或者没有反馈,导致一直没有被修复。
作者: defisym    时间: 2017-8-5 12:22
bug当feature系列
发现有bug,懒得改算法了,死马当活马医搞得正常了,也就不管了
作者: 百里_飞柳    时间: 2017-8-5 12:59
居然是内置的描边的bug
我一直以为是我选的字体问题……
作者: yang1zhi    时间: 2017-8-5 13:25
XP有内置描边吗。
不都是自己手动描的吗
作者:  眠     时间: 2017-8-5 14:22
之所以会默认缩小1,会不会是因为担心某些字体描边之后会重叠在一起呢(随便猜的

又或者是作为一种特色。


细节上的我也没有研究过,就连实现文字描边的原理我也不知道,就刚才打开VA稍微看了一下。(也不知道有没有跟上话题。。)

我看了一下,如果是普通的显示文字,如果是英文的f,原来两横的地方是不会描边的。
作者: 0nepeop1e    时间: 2017-8-6 03:45
没发现大概是因为没人用这么小的字体吧==
作者: sq333333    时间: 2017-8-6 08:08
是不是  汉字字符的原因呢,因为没有中文
作者: fux2    时间: 2017-8-6 09:29
0nepeop1e 发表于 2017-8-6 03:45
没发现大概是因为没人用这么小的字体吧==

我拿小号字举例也只是因为小号字的边缘更容易出现像素点。
再说9号(游戏里的12号)也属于正常使用范围内吧。
作者: hys111111    时间: 2017-8-6 10:06
XP没有描边,不存在这样的问题。
不过XP也有一些自带的bug,比如:对话框大小问题。
作者: RyanBern    时间: 2017-8-6 10:32
黄鸡日常卖醋,大家不要买,打死。

我只看到了“萌明”,黄鸡解释一下这是什么意思呢?
作者: fux2    时间: 2017-8-6 10:33
RyanBern 发表于 2017-8-6 10:32
黄鸡日常卖醋,大家不要买,打死。

我只看到了“萌明”,黄鸡解释一下这是什么意思呢? ...

我也不是很懂什么意思,我就按了2下M输入法自动显示出来的。
作者: 越前リョーマ    时间: 2017-8-6 16:54
看起来两个汉字之间的间距就出现了问题,已经贴在一起了,大概是为了间距考虑吧,可能需要对间距做重新设置
作者: 咕噜    时间: 2017-8-6 16:57
正确答案是黄鸡的名字里有个明
作者: 烁灵    时间: 2017-8-6 20:31
所以黄鸡醋醋的那坨系佳佳代码是怎么弄到的QAQ?




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