C语言图形库——EasyX常用函数

上节讲到贴出一张图片的过程,本节接着介绍一些基本的图形库函数。

头文件

#include <graphics.h>

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,BLUE);//在图形窗口的(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 <time.h>
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 <time.h>

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 <mmsystem.h>                            //头文件
#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)//暂停播放音乐。
  • 100
    点赞
  • 619
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值