翔鹰帝国网|帝国时代论坛|帝国时代系列|神话时代
 找回密码
 注册翔鹰会员(昵称)
搜索
查看: 2054|回复: 10

[交流] 关于显示信息的颜色代码的研究

 关闭 [复制链接]

65

主题

6

精华

6万

积分

圣徒

耕战
11924
鹰币
191238
天龙币
115
回帖
961

雄鹰勋章特级翔鹰勋章三级帝国勋章第十届火箭筒杯优秀战役第十届火箭筒杯最佳新人翔鹰建站十周年纪念章雏鹰勋章第一届暑假杯荣誉勋章

附庸关系0
发表于 2015-4-18 17:14:14 | 显示全部楼层 |阅读模式
本帖最后由 静默男爵 于 2015-4-18 17:17 编辑

显示信息作为一个可以快速切入指示与bgm的效果,在战役中被广泛地应用在各个方面。最常见的就是人物的对话了,一般地,不同的人物对话,制作者都会别出心裁地用不同的颜色标记出,既方便了玩家的阅读,也使对话内容更加美观。今天我们要讲的就是关于显示信息的颜色代码的前置与后置问题。

前置颜色代码,想必大家都不陌生,就是在显示的信息文字的最前方加上<BLUE>、<RED>、<GREEN>、<YELLOW>、<AQUA>、<PURPLE>、<GREY>、<ORANGE>,来使文字显示出蓝色红色绿色黄色青色紫色灰色橙色,现在问题来了,如果在显示信息文字的最后方加上这些代码,也会显示出对应的颜色。(参考链接:一个bug?)于是我们不禁会想:后置颜色代码是不是也可以应用到战役制作里面?答案是肯定的。但是讲到这里,我想大部分坛友都会有一个疑惑……



如果前置颜色代码与后置颜色代码同时出现,显示的文字会变成什么样?




让我们先来看这样一个例子,首先是前置<RED>代码,然后是后置<BLUE>代码,这样会显示出什么样的文字呢?答对啦!!那就是……


…蓝色的乱码……


好像哪里不太对……


按照我们的常识,这段文字显示的信息应该是红色的“小朋友们……蓝猫配<BLUE>”。这个例子告诉我们前置和后置决定文字的颜色并不是绝对的,那么让我们再看看另外一个例子。




这个显示出来之后会是什么颜色的呢?





很显然是绿色的乱码。





那么这个呢?事实告诉我们上面这个显示出的并不是紫色的乱码……


出人意料地,显示出了红色的正常文字……


这样看似毫无规律的颜色显示,有些坛友可能会注意到一个细节,那就是颜色显示的优先度问题。简单来说,<BLUE>、<RED>、<GREEN>、<YELLOW>、<AQUA>、<PURPLE>、<GREY>、<ORANGE>这八种颜色之间随机选出几种颜色的代码分别放在最前与最后,那么谁的优先度高,谁就会决定文字的颜色。


我们从以上例子中可以得出部分颜色的优先度:蓝色>红色>紫色;绿色>灰色。因此一个很合理的猜想就是:颜色的优先度顺序与游戏者默认颜色的顺序是一样的。而实际的试验也验证了这一点。即:


颜色显示优先度:蓝色>红色>绿色>黄色>青色>紫色>灰色>橙色


现在我们再来看这样的两个例子:




由于蓝色的优先度最高,所以这段信息是一连串蓝色的英文。




现在来看这一例子:





细心的坛友会发现这一串代码中,<BLUE>既不是最前端也不是最后面的代码,所以按照刚刚的结论,应该是最后面的代码决定了黄色的文字。然而……





依然是蓝色……


这说明颜色的代码并不取决于在文字中的位置,换句话说,如果一段文字中有<BLUE>这一代码,显示出的文字就是蓝色,而不是取决于它是否位于最前端或者最后





于是这样我们就能够得到正确的结论了:文字的颜色为蓝色。





正确。


但是这里面有个小问题……刚刚留心看的坛友也一定注意到了,就是在文字中插入了颜色代码之后,会出现乱码或者奇怪的英文字母。那么为了使研究更加清晰明确,接下来让我们显示英文信息。





由以上结论得知,这段颜色是绿色的,不过不要紧,我们研究的是另一个问题。





通过观察发现,“Hello”中少了一个“H”,这是“<AQUA>H”被绿色颜色代码吃掉的结果。再让我们回头看看其他的例子:





这段代码中“<GREEN”也被蓝色的颜色代码吃掉了。








在这段代码中,“<AQUA”被红色颜色代码吃掉了。


留心一下这些“吃人”的颜色代码与被吃掉的字符:
<AQUA>H ====== <GREEN>
<GREEN  ======  <BLUE>
<AQUA   ======   <RED>


我们不难发现,吃掉的位于最前端的字符的数量,实际上就是决定了文字颜色的代码本身的字符数量。








这样也就不难解释上两图的显示结果了。


需要注意的一点是,只要有“<”字符在开头出现,就会开始进行文字颜色的判定,这个时候游戏会自动寻找决定颜色的代码。比如:








但是如果没有字符“<”在最前端,就不会开始颜色的判定,这个时候即使你输入了颜色代码也是无效的。比方说下面的这个例子:








因为最前方没有“<”,所以<BLUE>不会生效,是白色的文字。








有趣的是,颜色代码可以吃掉自己,但是显示的颜色并不会变。


这样我们不难解释以前常用的前置颜色代码了吧?举个例子:“<RED>组长没节操!”之所以会显示出红色的“组长没节操!”,是因为开头的“<”使游戏进行了颜色判定,并且只有<RED>一个代码(优先度最大),然后红色颜色代码吃掉了与自身代码字符数相同的“<RED>”。


怎么样?是不是很简单呀?






总结:

改变信息中文字的颜色,必须在开头加“<”这一字符。
②信息是否改变颜色,与颜色代码在信息中的位置无关。
③颜色代码会“吃掉”位于信息最前端的与代码自身等长的字符,如果“不够吃”则会乱码。




================================================================================================


指导教师:@条顿武士



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册翔鹰会员(昵称)

x

评分

参与人数 1耕战 +200 收起 理由
条顿武士 + 200 原创精华

查看全部评分

深居以避患,静默以待时。
回复

使用道具 举报

688

主题

30

精华

8万

积分

教皇

耕战
10902
鹰币
542496
天龙币
512
回帖
7009

翔鹰建站十周年纪念章翔鹰十周年帝国Online纪念章特级帝国勋章特级翔鹰勋章特级嘉禾勋章特级皇家勋章鹰之王者雄鹰勋章第四届火箭筒杯最佳战役第五届火箭筒杯最佳战役第九届火箭筒杯最佳战役第二届战鹰杯单人赛季军第八届战鹰杯单人赛季军鸽子勋章

附庸关系12
发表于 2015-4-18 18:09:22 | 显示全部楼层
补充一下:

③颜色代码会“吃掉”位于信息最前端的与代码自身等长的字符,如果“不够吃”则会乱码。


这里并不是不够吃会出现乱码,而是因为汉字占据两个字符的位置,在吃掉的字符数刚好跨越半个汉字的位置时便会出现乱码。
回复

使用道具 举报

23

主题

1

精华

2万

积分

征服者

耕战
3880
鹰币
3530
天龙币
75
回帖
1134

翔鹰建站十周年纪念章二级翔鹰勋章第八届火箭筒杯最佳战役第八届火箭筒杯最佳新人

附庸关系0
发表于 2015-4-18 18:55:11 | 显示全部楼层
1.0c版本中,使用<RED>标注前置会留下一个>,利用这个原理后置<RED>则可以使得<RED>的>不再显示。。。。这大概就是以前<RED>后置法的原理吧?

点评

应该没错,在前面故意放上5个字符,那么这些字符就会被系统移除,然后字体呈现红色。至于那个“一个bug”的帖子,应该是作者只放了四个字符,移除时混乱,所以中文编码被打乱  发表于 2015-4-19 03:55

                 【2021】天堂之路DE版                                   【2016】霭之坡的窈蔚之森
个人网盘
回复

使用道具 举报

144

主题

4

精华

1万

积分

宗主教

耕战
2738
鹰币
531103
天龙币
47
回帖
14734

翔鹰建站十周年纪念章二级帝国勋章一级嘉禾勋章翔六水王创意工坊通行证

附庸关系12
发表于 2015-4-18 18:57:02 | 显示全部楼层
学习了学习了!大赞!
回复

使用道具 举报

83

主题

9

精华

11万

积分

宗主教

耕战
21563
鹰币
10968
天龙币
281
回帖
2821

翔鹰建站十周年纪念章三级帝国勋章特级翔鹰勋章三级嘉禾勋章雄鹰勋章第九届火箭筒杯优秀战役第九届火箭筒杯最佳新人第十届火箭筒杯最佳战役第十二届火箭筒杯最佳战役

附庸关系2
发表于 2015-4-18 20:06:44 | 显示全部楼层
想到一个应用,就是在游戏里人为制造乱码。

PS. 此结论也适用于送出聊天吧?

点评

嗯,同样适用  发表于 2015-4-18 21:27
Annie's Wonderland
第一章:海与山(已发布,点击进入)
第二章:杏花宵(已发布,点击进入)
第三章:沙漠之星(先行版已发布,点击进入)
终章:风神的歌谣(地图0% 触发0/1000 状态:未开始)
回复

使用道具 举报

106

主题

0

精华

3413

积分

公爵

耕战
599
鹰币
990
天龙币
0
回帖
213

活跃者

附庸关系0
发表于 2015-4-19 04:02:20 | 显示全部楼层
这个有趣,可以自编密码和解码
回复

使用道具 举报

110

主题

14

精华

6万

积分

教皇

特洛伊大叔

耕战
10480
鹰币
1610
天龙币
126
回帖
2358

翔鹰建站十周年纪念章二级帝国勋章一级翔鹰勋章二级嘉禾勋章大评论家小评论家创意工坊通行证第十一届火箭筒杯最佳战役

附庸关系10
发表于 2015-5-1 01:47:48 | 显示全部楼层
我測試 1.4 版並不會出現亂碼。但是字符還是會消去,首個中文會被砍去一半而無法閱讀,但後面就正常了。

点评

不是那個問題,舊版是會整個變亂碼。1.4 是只有首字  发表于 2015-5-1 08:53
这个组长在沙发中有解释~  发表于 2015-5-1 02:20
回复

使用道具 举报

本版积分规则

排行榜|小黑屋|翔鹰帝国

GMT+8, 2024-12-22 18:48 , Processed in 0.340829 second(s), 94 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

Copyright © 2001-2023, Hawkaoe.net All Rights Reserved

快速回复 返回顶部 返回列表