ANSI 颜色使用研究
2021/4/7 11:33:17
众所周知,MUD是一个只有文字的世界,因为没有任何图像,所以正是因为有16种ANSI颜色,才使得我们这个世界变得丰富多彩,更有吸引力。出于一名巫师和一名网页制作者的考虑,目前的巫师在使用ANSI颜色时,常常不是惜墨如金一点都不用就是不分场合到处乱用,这样对于一个MUD的表现力而言都是不好的。所以我今天有空 就想随便说说有关ANSI COLOR的一些使用方法,给大家参考。
我们先从源头说起,之所以加了ANSI标示符的字符就可以显示不同的颜色,是因为通过客户端像zMUD这样的软件,能够从Winsock控件的DataArrival事件中传回的数据中识别出ANSI标示符,将其后面的字符转换成指定的颜色,在RichTextbox中显示出来。这涉及一些简单的Windows网络编程,就不多谈了。至于tintin+这些,虽然在Linux下使用的控件和Windows不同,但原理还是一样的。
一般来说,要在一个程序中使用ANSI颜色,人人都知道要在头上#include ,那么,这个“ansi.h”文件你打开看过了没有呢?在一些welcome文件中那些初学者看来非常深奥的什么[1;37m这样的字符你明白了它的意思没有呢?让我们打开/include/ansi.h这个文件看一看吧:
// File : /include/ansi.h
// 这是MUDLIB的标准颜色设置,由Jjgod汉化
#define ESC ""
#define CSI ESC + "["
#define BLK ESC+"[30m"
#define RED ESC+"[31m"
#define GRN ESC+"[32m"
#define YEL ESC+"[33m"
#define BLU ESC+"[34m"
#define MAG ESC+"[35m"
#define CYN ESC+"[36m"
#define WHT ESC+"[37m"
#define HIR ESC+"[1;31m"
#define HIG ESC+"[1;32m"
#define HIY ESC+"[1;33m"
#define HIB ESC+"[1;34m"
#define HIM ESC+"[1;35m"
#define HIC ESC+"[1;36m"
#define HIW ESC+"[1;37m"
#define HBRED ESC+"[41;1m"
#define HBGRN ESC+"[42;1m"
#define HBYEL ESC+"[43;1m"
#define HBBLU ESC+"[44;1m"
#define HBMAG ESC+"[45;1m"
#define HBCYN ESC+"[46;1m"
#define HBWHT ESC+"[47;1m"
#define BBLK ESC+"[40m"
#define BRED ESC+"[41m"
#define BGRN ESC+"[42m"
#define BYEL ESC+"[43m"
#define BBLU ESC+"[44m"
#define BMAG ESC+"[45m"
#define BCYN ESC+"[46m"
// #define BWHT ESC+"[47m"
#define NOR ESC+"[2;37;0m"
#define BOLD ESC+"[1m"
#define CLR ESC+"[2J"
#define HOME ESC+"[H"
#define REF CLR+HOME
#define BIGTOP ESC+"#3"
#define BIGBOT ESC+"#4"
#define SAVEC ESC+"[s"
#define REST ESC+"[u"
//#define REVINDEX ESC+"M"
#define SINGW ESC+"#5"
#define DBL ESC+"#6"
#define FRTOP ESC+"[2;25r"
#define FRBOT ESC+"[1;24r"
#define UNFR ESC+"[r"
#define BLINK ESC+"[5m"
#define U ESC+"[4m"
#define REV ESC+"[7m"
#define HIREV ESC+"[1,7m"
上面就是经过我汉化的的ansi.h文件了,其中有些实在太难译,所以我只好把原来的留了下来。认真看过上面 的这些,就应该基本明白常用的ANSI颜色怎么用了,所以说,如果不#include ,照样也可以用彩色, 你只需要在用的前面加上[1;33m这样就行了,这些都很简单,我就不赘述了。这篇文章要谈的重点,其实是一个A NSI COLOR于zMUD的协调问题。
基本上绝大多数的MUD玩家都是使用zMUD为客户端软件的,所以你的程序在zMUD中的显示效果就尤为重要了。问题其实是出现在了在ANSI颜色的使用上,zMUD和标准的ANSI定义出现了分歧,这种分歧是在zMUD 4.62汉化版后产生的,zMUD的4.62英文版都应该尚无此问题,但正是因为以前没有问题后来才出现了问题。你听到这里是不是越来越不
下一页
返回列表
返回首页
©2024 MUD游戏网_文字mud 电脑版
Powered by iwms