主流引擎的富文本方案都很成熟了,GMS想要给关键字换个颜色还要死要活的……
一开始的思路是把异色词语直接写在原文本上,但是因为换行等因素,定位感觉好麻烦
于是想出了“用空白的全角字符和半角字符来补位,让词语能和普通文本一样换行”
这里用了不知道是啥的¤和半角¥,这两个符号我都不知道怎么正常打出来
需要修改字体文件,像GMS这样生成texture字体的问题不大,外挂字体文件的需要注意一下可能导致的问题
然后把原字符串转化为用¤和¥和空格的字符串。如果是字符尺寸不一样的字体……大概不适用这个办法,还是需要正式一点的方案
然后又有在文本里加入转义字符或是识别关键字的方案,为了省事选了后者
需要实现的效果就是人名、道具、地名等类型的词语会以特殊颜色显示,想了想这样就凑合,真要有什么特殊情况再特殊处理好了
啊,完蛋,写这段的时候突然想起来“数字”还需要特殊判断
不过问题也不大
用GMS原生的string_pos函数可以找到字符串中的某个词语的位置,因为string_pos只能返回第一个,所以弄了个会返回一个记录了所有位置的数组的string_pos_multiple
while(1)总让人心发慌,按说repeat(100)应该也够了
然后把用¤和¥填充的字符串的字符换成
然后再同一个地方把各个字符串各画一遍
凑合用是凑合了
哪天空下来再研究完善的方案吧
其实写这个是想问问大家找不找得到比较方便的现成的GMS2富文本方案
前几天看完你的日志觉得这个东西有点意思趁着今天休息鼓捣了一下,感谢。
最近由 yellow 修改于:2020-06-20 18:06:08三个路子从简单到复杂:
1.写了一个只支持c标签也是凑合的脚本,后续可以扩展其他标记
https://pastebin.com/Gxznnfyi
2.marketplace中搜rich text有一个,版本v1.4,虽然可以直接跑不出错,但我觉得还是需要改一改
https://marketplace.yoyogames.com/assets/422/colored-draw-text-custom
3.一个老外弄的非常花哨的富文本,老好了
https://github.com/JujuAdams/scribble
我居然看成色文本方案还点了进来……