上节讲到贴出一张图片的过程,本节接着介绍一些基本的图形库函数。
#include
1、图形窗口背景颜色设置函数:
例
setbkcolor(YELLOW);//将图形窗口背景颜色设置为黄色。
也可用
setbkcolor(RGB(180,24,137));
利用三原色设置颜色,RGB(红,绿,蓝),每种颜色的取值范围为0—255,RGB(180,24,137)的意思就是说红:绿:蓝=180::24:137.
2、打印文字函数:
outtextx(x,y,L”hello”),
在坐标(x,y)处打印出hello,该函数只能打印字符串,打印数字需要强转类型,例如:
int a=1;
Char str[10];Sprintf(str,”%d”,a); outtextx(x,y,str);
3、设置文字风格函数:
settextstyle(h,w,L”楷体”);
将字体设置为高度为h、平均宽度为w以楷体样式输出,宽度w可设置为0即比例自适应
4、画线段函数:
line(x,y,xx,yy);//在图形窗口中将坐标为(x,y)、(xx,yy)的两点连接起来。
5、设置线段颜色函数:
setlinecolor(RED);//将线段设为红色
6、显示点函数:
putpixel(x,y,BULL);//在图形窗口的(x,y)处显示一个颜色为蓝色的点。
7、画矩形函数:
rectangle(x,y,xx,yy);//矩形左上角坐标(x,y)、右下角坐标(xx,yy)为界显示一个矩形。
8、画圆函数:
fillcircle(x,y,r);//以圆心为(x,y)、半径为r画圆。
9、清屏函数:
cleardevice();//具体来说这个函数的功能是将当前图形窗口清空,还原至背景颜色。
10、鼠标操作:
这里我们只列举几个常用的
MOUSEMSG msg; //定义一个鼠标消息
msg=GetMouseMsg();//获取鼠标消息
switch(msg.uMsg)
{
case WM_MOUSEMOVE: ……break;//鼠标移动消息
case WM_MOUSEWHEEL: ……break;// 鼠标滚轮拨动消息
case WM_LBUTTONDOWN: ……break;// 左键按下消息
case WM_MBUTTONDOWN: ……break;// 中键按下消息
case WM_RBUTTONDOWN: ……break;// 右键按下消息
}
11、双缓冲,用于缓解屏幕跳动
BeginBatchDraw();
EndBatchDraw();
12、pos_x,pos_y表图片显示的位置,photo_width,photo_high表图片的大小,&image图片的地址,photo_x,photo_y表从该处开始取图
putimage(pos_x,pos_y,photo_width,photo_high,&image,photo_x,photo_y);
13、获取图片image的长和宽
IMAGE iamge;
image.getwidth();//获取宽
image.getheight();//获取高
14、设置填充色
setfillcolor(RED);
15、计时(记秒数),需添加头文件
#include
clock_t start=clock();
clock_t end=(clock()-start)/CLOCKS_PER_SEC;
16、画旋转线段
int line_long;//线段长度
float line_Alge;//每次转动的角度
int center_x,center_y,end_x,end_y;//线段的起点与终点
end_x=center_x+line_long*sin(line_Alge);
end_y=center_y+line_long*cos(line_Alge);
line(center_x,center_y,end_x,end_y);
17、随机函数
#include
int num=rand()%100;//从0-99之间随机选取一个数
(在使用随机函数的开始出要用随机函数的种子,避免每次出现的随机数是一样的:srand((unsigned int)time(NULL));
这里在讲一个上节漏掉的函数:
(1)创立图形窗口并保留控制台窗口:
initgraph(w,h, SHOWCONSOLE),w、h的意义不必多说。
(2)关闭图形窗口:
closegraph();
到这里如果这些函数都掌握了,用C语言做一些小游戏应该不成问题,比如推箱子、打地鼠、迷宫等等,当然你必须要有一定的逻辑能力,这些函数只是帮你完成游戏的画面。
接下来再说一些可能会用的函数:
获取屏幕宽:
GetSystemMetrics(SM_CXFULLSCREEN);//此函数返回当前电脑屏幕的宽`。
获取屏幕高:
GetSystemMetrics(SM_CYFULLSCREEN);//此函数返回当前电脑屏幕的高。
播放音乐
这个就不属于图形库的内容了,在做游戏的时候肯定不能少了配乐。
#include //头文件
#pragma comment(lib,”winmm.lib”) //引用静态库
mciSendstring(“open 音乐文件名(加文件类型,例:.mp3) alias music”,NULL,NULL,NULL);//将音乐文件放在与源文件同一目录下,alias music的意思就是将这个音乐文件重新命名为music
mciSendstring(“play music repeat”,NULL,NULL,NULL);//播放音乐,play意为播放,同样可换做pause:暂停,stop:停止,close:关闭,Resume:继续。Repeat意为重复播放。
mciSendstring(“stop music repeat”,NULL,NULL,NULL);//暂停播放音乐。