ANSI 颜色使用研究
2007/9/21 19:49:08

总所周知,ES2类的LPMUD是一个只有文字的世界,因为没有任何图像,所以正是因为有16种ANSI颜色,才使得
我们这个世界变得丰富多彩,更有吸引力。出于一名巫师和一名网页制作者的考虑,目前的巫师在使用ANSI颜色时,常常
不是惜墨如金一点都不用就是不分场合到处乱用,这样对于一个MUD的表现力而言都是不好的。所以我今天有空就想随便
说说有关ANSI COLOR的一些使用方法,给大家参考。
    我们先从源头说起,之所以加了ANSI标示符的字符就可以显示不同的颜色,是因为通过客户端像zMUD这样的软件,能
够从Winsock控件的DataArrival事件中传回的数据中识别出ANSI标示符,将其后面的字符转换成指定的颜色,在Rich
Textbox中显示出来。这涉及一些简单的Windows网络编程,就不多谈了。至于tintin+这些,虽然在Linux下使用的控件
和Windows不同,但原理还是一样的。
    一般来说,要在一个程序中使用ANSI颜色,人人都知道要在头上#include <ansi.h>,那么,这个“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" /* 返回原色 */
/* 新增的Ansi颜色定义字符。由 Gothic april 23,1993 */
/* 注意:这些操作符是为VT100终端设计的。 */
/* 在MUD中,它们可能不一定全部都能正常使用。 */
#define BOLD ESC+"[1m" /* 打开粗体 */
#define CLR ESC+"[2J" /* 清屏 */
#define HOME ESC+"[H" /* 发送光标到原处 */
#define REF CLR+HOME /* 清屏和清除光标 */
#define BIGTOP ESC+"#3" /* Dbl height characters, top half */
#define BIGBOT ESC+"#4" /* Dbl height characters, bottem half */
#define SAVEC ESC+"[s" /* Save cursor position */
#define REST ESC+"[u" /* Restore cursor to saved position */
//#define REVINDEX ESC+"M" /* Scroll screen in opposite direction */
#define SINGW ESC+"#5" /* Normal, single-width characters */
#define DBL ESC+"#6" /* Creates double-width characters */
#define FRTOP

下一页
返回列表
返回首页
©2024 MUD游戏网_文字mud 电脑版
Powered by iwms