赞 | 95 |
VIP | 77 |
好人卡 | 113 |
积分 | 69 |
经验 | 147345 |
最后登录 | 2024-9-22 |
在线时间 | 7028 小时 |
Lv4.逐梦者 (版主)
- 梦石
- 0
- 星屑
- 6901
- 在线时间
- 7028 小时
- 注册时间
- 2013-11-2
- 帖子
- 1344
|
本帖最后由 RaidenInfinity 于 2018-1-12 22:23 编辑
来,终于考完期末也回到家了有时间来清算了啊。
首先,来上图。这是后台的回收站里存放的已删除回帖。
熟悉RGSS3脚本应用的各位是不是眉头已经开始皱了呢?
是的,当时我的眉头皱得都快可以夹死蚊子了,虽然我这儿雨季天气稍冷并没怎么有蚊子。
我们就不计较一开始删除线里包含的这个。
fonts_view是什么东西?这凭空捏造出来的专有名词,是我第一时间就判定为误导,而且还是恶意误导的重大依据。
来,请拿出参考文献。是哪儿记载的这个说法呢?
什么叫字体?维基百科记载着:字体在书法和印刷领域是指文字的式样。
一些游戏引擎,如libGDX和MonoGame的确是用已经列印好在一张或数张图片上的字符用于文字的绘制(这叫BitmapFont)。
但是,RGSS3基于ttf或者otf格式的,矢量电脑字体文档来进行文字的绘制,是直接在位图上生成文字的。
和图片有什么关系?有 什 么 关 系?
图片有自己的宽高度。这个宽高度与字体实际显示的宽高是不同的。(可以想象一张透明的大纸,纸面只有一小部分被写了字;纸面的宽高是图片宽高,而人眼见到的字是实际宽高)
来,这位老兄,不懂就不要装懂。来装懂你这就是误导。
上面提到的“直接在位图上生成文字”,想当然也就可以附上各种参数。
Bitmap(位图)的参数font(字体),包含的是一个Font(字体)类。
这个类的用途只有一个:就是装载下一次在这个位图执行绘制文字的操作时所使用的字体数据(字体名称,大小,是否粗体,是否斜体,是否描边,描边颜色,是否加影子,文字颜色)。
Bitmap类关系到文字绘制的方法有三个(实际上是两个)。
第一个是 draw_text(x, y, width, height, str[, align]) (中文翻译:绘制文字(X坐标, Y坐标, 宽度, 高度, 文字, 靠边) *靠边是指左中右,默认左,是选择性参数。)
第二个是 draw_text(rect, str[, align]) (中文翻译:绘制文字(矩形, 文字, 靠边)),和第一个的差距只是用一个Rect(矩形)类来表示坐标和宽高。
第三个是 text_size(str) (中文翻译:文字大小(文字)),主要用途是获取以这个字体在这个位图上绘制这段文字的时候生成的宽度和高度。
那么我们来看,draw_text这个方法的前面四个参数。X坐标和Y坐标,这很正常,是决定这文字要在位图的哪个部分绘制。
宽度和高度,就是我们要知道的重点了。在调用draw_text参数的时候,如果实际需要的宽度少于参数内附上的宽度,会发生什么事情呢?
那么RGSS3会尝试不会让文字只显示在框内的部分。它会干啥呢?它会强制压缩文字的宽度,到原本的大约一半。
该帖楼主的提问是:(链接:https://rpg.blue/forum.php?mod=viewthread&tid=405018)
RT,两种字体都是相同字号,相同空隙,但一种就能完全显示,另一种被压得面目全非。
因为楼主所提供的截图内的的文字看似是一个技能的,而且也很明显背景是窗口皮肤,所以这是Window(窗口)相关类里面执行的绘制。
RGSS3中,窗口内所绘制的任何事物都是直接画在contents(内容)这个位图上的。想当然,文字就要调用draw_text来执行绘制。
因此,会导致上述问题的,就是宽度参数设定不足。
好,不知不觉就成讲课了。希望各位看官有学到一点知识啊。
那么这家伙发的是什么鬼呢?
本来该绘制在窗口的东西,搞什么精灵啦src_rect啦…
然后!
RM有专门的方法来显示文字,叫做“contents”,只要在“Window”类的子类中显示的文字全部都归它管;但它是用C写成的(貌似)
> 有专门的方法来显示文字
> 叫做“contents”
> 只要在“Window”类的子类中显示的文字全部都归它管
> 但它是用C写成的(貌似)
好哦。来我们看看这张图。
我还需要说什么吗?
大概…已经不需要了。
然后我再看了一次主楼,哦,我看到了什么?
2. 我贴的方法是不是解决了【文字大小与显示】的问题
哦,不止没解决,添加了问题呢!
Bitmap的clear_rect方法是用于清空位图内的一部分,避免需要完全重绘位图(一般是窗口的)内的事物。
当窗口的,contents(内容位图)的大小大于窗口所显示的范围而无法一次过完全显示时,就会需要滚动(由ox和oy参数操纵滚动幅度),而且也会显示表示可滚动的箭头。
那么试想想,如果把字体用精灵的方式来显示的话…
大!爆!炸!
所以结论是啥?误导。
明显恶意的误导。别用什么花言巧语来掩饰你那撒旦般的行为。
就像一个“医生”发明了什么“特效药”其实特么是洗涤剂掺绿油精掺红花油然后拿出来想给人治病…
然后被抓个正着被关了。这有趣吗?一点也不有趣。
以上。
|
评分
-
查看全部评分
|