jay1027458229 发表于 2021-12-13 11:32:57

【强烈推荐】可以解决很多NPC界面排版场景的工具类[老论坛]

本帖最后由 独家记忆 于 2022-7-1 10:18 编辑

这次给大家分享2个工具类,一个是Gravity,一个是TextUtilGravity是适用于对齐的,TextUtil是适用于从文本中找到最真实的文字的。具体文件详见附件函数引用:import * as TextUtil from "../工具类/TextUtil"具体的位置,自己根据自己的目录调一下,Visual studio也挺智能的,路径输入的过程中,他会自动提示。然后下面就可以使用,TextUtil.函数名,调用了。之后如何引用这块就不强调了函数介绍:
(1)TextUtil类:
3个函数jiantouChuli,kuohaoChuli,scharChuli这3个函数大家可以不用管,这是内部处理函数。getTrueText,textCharStrlen这2个才是对外开放的函数。textCharStrlen:检测一段文本内共计有多少个英文字符,一个汉字=2个英文字符。getTrueText:是从一段文字中去除修饰符,找到最真实的文字。    比如:一段文本是这样的。   {S=大家好;C=253},可以通过<武器升级/@shengji>,{S=提升自己的实力;C=253哦}。通过该函数处理后,能够得到 “大家好,可以通过武器升级,提升自己的实力哦”这一段字注意:getTrueText函数是根据91引擎深度定制的,一切字符截图是根据<>、{}、S=进行截取的。所以GM在使用的过程中,自己别在文本里再额外的用 <、>、{、}、S= 这5种字符了,否则会处理错乱。var str:string =TextUtil.getTrueText(这里是要处理的文字)(2)Gravity类
介绍Gravity类中有1个枚举类型参数,对应了3个值。 GravityE {LEFT=1, CENTER=2, RIGHT=3},分别对应的是左对齐,中对齐,和右对齐。在该类中,只有1个返回值为string的方法,函数为:createString(原文本:allStr,真实文本:name,中文列宽:columnwidth,对齐方式:gravityType)4个参数详解如下:
columnwidth:就是列的宽度,自己可以在界面上打字,看看自己的界面框可以显示个汉字,那自己的列宽就是多宽。有了列宽作为基础数据。如果GM想1行显示2列,列的内容都是居中的,那这里的传的值 =width / 2就行了,就是一半框的居中。同理1/31/52/5这种都可以设置。allStr:就是未经过getTureText的原始文本name:经过getTureText的文本gravityType:对齐方式,GravityE.CENTER中对齐;GravityE.LEFT左对齐;GravityE.RIGHT右对齐所以,以上2个函数混合,类似排行榜和会员服务这种排版,就几行代码就可以实现界面的排版了。当然后续的处理逻辑自己还是要做的。不过,不用被操蛋的界面排版浪费自己大部分时间,这个应该会很爽的吧?以下为截图示例排行榜 - 使用的是居中对齐会员服务 - 使用的是左对齐


下载地址:index.php?c=app&a=puyuetianeditor:index&s=showfile&id=67



yt_87 发表于 2021-12-13 11:40:37

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊阿 啷哩个浪

一路随云[老论坛] 发表于 2021-12-13 11:41:53

还可以封装的更易用,比如就传递一个数组 和一个排版方式得到字符串。就行了。十一月的肖邦:
那个感觉不太好,那个就太过于定制化了。这种单行的可以这么搞。排行榜的十一月的肖邦:
我搞了个屏蔽NPC的功能,那个代码就是传参直接一键生成的,不过内部生成的每行的内容还是要自己写的。之前本来是一开始写屏蔽功能的,写来写去排版问题太操蛋了,就先解决这个问题了,以后再把屏蔽功能给上传上来吧

有时 发表于 2021-12-13 11:45:14

看看先

小道消息 发表于 2021-12-13 11:46:54

先看看

鬼魅大人 发表于 2021-12-13 12:05:34

先看看

独家记忆[老论坛] 发表于 2021-12-13 12:51:39

66666

你说了算小能手[老论坛] 发表于 2021-12-13 13:06:43

似火小学生 发表于 2021-12-13 13:48:44

看看学习一下

大福星 发表于 2021-12-13 13:57:02

奥术大师
页: [1] 2 3 4 5 6 7
查看完整版本: 【强烈推荐】可以解决很多NPC界面排版场景的工具类[老论坛]