c语言疯狂八点游戏,第2章-用c语言编写小游戏快速入门(8页)-原创力文档

第2

第2章贸易术语案例讨论题

页脚内容

页脚内容 PAGE #

第二章文本窗口

第一节文本窗口的定义

Turbo C2.0的字符屏幕函数主要包括文本窗口大小的设定、窗口颜色的

设置、窗口文本的清除和输入输出等函数。

Turbo C2.0默认定义的文本窗口为整个屏幕,共有80列(或40列)25行 的文本单元,每个单元包括一个字符和一个属性,字符即 ASCII码字符,属性规 定该字符的颜色和强度。

Turbo C2.0可以定义屏幕上的一个矩形域作为窗口,使用window()函

数定义。窗口定义之后,用有关窗口的输入输出函数就可以只在此窗口内进行操 作而不超出窗口的边界。

window()函数的调用格式为:void window(int left, int top, int right, int bottom);

该函数的原型在conio.h中(关于文本窗口的所有函数其头文件均为

conio.h,后面不再说明)。

函数中形式参数(int left, int top)是窗口左上角的坐标,(int right, int bottom)是窗口的右下角坐标,其中(left, top)和(right, bottom) 是相对于整个屏 幕而言的。

Turbo C 2.0规定整个屏幕的左上角坐标为(1, 1,右下角坐标为(80, 25)。 并规定沿水平方向为 X轴,方向朝右;沿垂直方向为丫轴,方向朝下。若window() 函数中的坐标超过了屏幕坐标的界限, 则窗口的定义就失去了意义,也就是说定 义将不起作用,但程序编译链接时并不出错。

另外,一个屏幕可以定义多个窗口,但现行窗口只能有一个(因为DOS 为单任务操作系统),当需要用另一窗口时,可将定义该窗口的window()函数

再调用一次,此时该窗口便成为现行窗口了。

如要定义一个窗口左上角在屏幕(20,5)处,大小为30列15行的窗口可 写成:win dow(20, 5, 50, 25);文本窗口颜色的设置文本窗口颜色的设置包括背景 颜色的设置和字符颜色的设置,使用的函数及其调用格式为:

设置背景颜色:void textbackground(int color);

设置字符颜色:void textcolor(int color);

有关颜色的定义见下表。

符号常数数值含义字符或背景

BLACK0 黑 两者均可

BLUE1 兰 两者均可

GREEN2绿两者均可

CYAN3青两者均可

RED4红两者均可

MAGENTA5 洋红 两者均可

BROWN6 棕 两者均可

LIGHTGRAY 7淡灰两者均可

DARKGRAY 8 深灰只用于字符

LIGHTBLUE 9 淡兰只用于字符

LIGHTGREEN 1(淡绿只用于字符

LIGHTCYAN 11淡青只用于字符

LIGHTRED 12淡红只用于字符

LIGHTMAGENTA 13淡洋红 只用于字符

YELLOW 14黄只用于字符

WHITE 15白只用于字符

BLINK 128闪烁 只用于字符

上表中的符号常数与相应的数值等价, 二者可以互换。例如设定兰色背景可 以使用extbackground(1), 也可以使用textbackground(BLUE),两者没有任何 区别,只不过后者比较容易记忆,一看就知道是兰色。

Turbo C另外还提供了一个函数,可以同时设置文本的字符和背景颜色, 这个函数的调用格式为:

void textattr(int attr);

其中:attr的值表示颜色形式编码的信息,每一位代表的含义如下:

闪烁背景颜色字符颜色

字节低四位CCCC设置字符颜色(0到15), 4--6三位bbb设置背景颜色(0到 7),第7位B设置字符是否闪烁。假如要设置一个兰底黄字,定义方法如下: textattr(YELLOW+(BLUE<<4));若再要求字符闪烁,则定义变为: textattr(128+YELLOW+(BLUE<<4);

对于背景只有0到7共八种颜色,若取大于7小于15的数,则代表的 颜色与减7后的值对应的颜色相同。

用textbackground()和textcolor()函数设置了窗口的背景与字符颜色

后,在没有用clrscr()函数清除窗口之前,颜色不会改变,直到使用了函数clrscr(), 整个窗口和随后输出到窗口中的文本字符才会变成新颜色。

用textattr()函数时背景颜色应左移4位,才能使3位背景颜色移到正确 位置。

下面这个程序使用了关于窗口大小的定义、颜色的设置等函数,在一个屏幕

上不同位置定义了 7个窗口,其背景色分别使用了7种不同的颜色。

#i nclude

#in clude

mai n()

{

int i;

textbackgrou nd(0); /*设置屏幕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值