资源描述:
《编程高手之路—代码集萃—C语言编写的俄罗斯方块.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、编程高手之路—代码集萃—C语言编写的俄罗斯方块Tc2.0中怎么样设置图形显示? Tc2.0中有两种显示模式,一种是我们所熟知的字符模式,另一种是图形模式。在字符模式下只能显式字符,如ASCII字符。一般是显示25行,每行80个字符。程序缺省的是字符模式。在字符模式下不能显式图形和进行绘图操作。要想进行图形显示和绘图操作,必须切换到图形模式下。 Tc2.0中用initgraph()函数可以切换到图形模式,用closegraph()可以从图形模式切换回字符模式。initgraph()和closegraph()都是图形函数,使用图形函数必须包括头文件graphics.h。 voidfarini
2、tgraph(intfar*graphdriver,intfar*graphmode,charfar*pathtodriver);graphdriver是上涨指向图形驱动序号变量的指针;graphmode是在graphdriver选定后,指向图形显示模式序号变量的指针。pathtodriver表示存放图形驱动文件的路径。 Tc2.0中有多种图形驱动,每种图形驱动下又有几种图形显示模式。在我的程序中图形驱动序号为VGA,图形显示模式序号为VGAHI。这是一种分辨率为640*480(从左到右坐标依次为0-639,从上到下坐标依次为0-479),能够显示16种颜色的图形模式。别的图形驱动序号和图形
3、显示模式序号,可以从手册或联机帮助中找到。 pathtodriver指示存放图形驱动文件的路径。图形驱动序号不同,图形驱动文件也不同。序号为VGA图形驱动对应egavga.bgi这个图形驱动文件。egavga.bgi一般在Tc目录下。voidfarclosegraph(void); 没有参数,从图形模式直接返回字符模式。initgraph()和closegraph()的常用用法如下:intgdriver=VGA,gmode=VGAHI,errorcode;/*initializegraphicsmode*/initgraph(&gdriver,&gmode,e:tc2);/*readres
4、ultofinitialization*/errorcode=graphresult();if(errorcode!=grOk)/*anerroroccurred*/{printf(Graphicserror:%sn,grapherrormsg(errorcode));printf(Pressanykeytohalt:);getch();exit(1);/*returnwitherrorcode*/}/*returntotextmode*/closegraph();Tc2.0中常用图形函数的用法?在这里讲几个游戏中用到的绘图用的图形函数:setcolor();line();rectangle(
5、);settextjustify();outtextxy();setfillstyle();bar();voidfarsetcolor(intcolor); 设置画线、画框和在图形模式下显示文字的当前颜色。这个函数将影响line()、rectangle()和outtextxy()函数绘图的颜色。color可以取常的颜色常量:BLACK?0BLUE?1GREEN?2CYAN?3RED?4MAGENTA?5BROWN?6LIGHTGRAY?7DARKGRAY?8LIGHTBLUE?9LIGHTGREEN?10LIGHTCYAN?11LIGHTRED?12LIGHTMAGENTA?13YELLOW
6、?14WHITE?15voidfarline(intx1,inty1,intx2,inty2);用当前颜色从(x1,y1)画一条到(x2,y2)的线段。voidfarrectangle(intleft,inttop,intright,intbottom);用当前颜色画一个左上角为(left,top)、右下角为(right,bottom)的矩形框。voidfarsettextjustify(inthorz,intvert);设置图形模式下文字输出的对齐方式。主要影响outtextxy()函数。horiz和vert可取如下枚举常量:horiz?LEFT_TEXT?0?Left-justifytex
7、t?CENTER_TEXT?1?Centertext?RIGHT_TEXT?2?Right-justifytextvert?BOTTOM_TEXT?0?Justifyfrombottom?CENTER_TEXT?1?Centertext?TOP_TEXT?2?Justifyfromtopvoidfarouttextxy(intx,inty,char*textstring);在(x,y)处用当前字体