EasyX 图形库入门,使用C/C++语言快速上手图形和游戏编程。

  • Post author:
  • Post category:其他



目录


内容大纲为B站up主“c语言Plus”的视频内容所记录的笔记,感兴趣的小伙伴可前去了解更多小游戏的开发教程。


目录


导读


原理


安装


一、用于窗口的基础操作


二 、图形绘制函数用于在窗口绘制各种图形


三、文字绘制函数用于在窗口上绘制文字


四 、图像处理函数用于在窗口上显示图片


五、键盘消息函数用于获取键盘按键消息


六、播放音乐


七、其他函数


内容大纲为B站up主“c语言Plus”的视频内容所记录的笔记,感兴趣的小伙伴可前去了解更多小游戏的开发教程。

目录

导读

EasyX 是针对 C/C++ 的图形库,可以帮助使用C/C++语言的程序员快速上手图形和游戏编程。

比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练习图形学的各种算法,等等。

原理

基于Winwods图形编程,将Windows下的复杂程序过程进行封装,将Windows下的编程过程隐藏,给用户提供一个简单熟悉的接口。用户对应图形库中函数的调用,最终都会由Windows的底层API实现。

安装

EasyX图形库指出Vs各种版本,下载解压后,直接执行安装程序即可。而其本质就是查找Vs的安装目录,并将相关文件分别拷贝至lib目录和include目录。

安装成功后,包含头文件graphics.h即可快乐了【doge】。

一、用于窗口的基础操作

1.EasyX坐标的原点在窗口的左上角,X轴正方向向右,Y轴正方向向下,单位是一个像素点。

2.initgraph(int width, int height, int flag =NULL);用于初始化绘图窗口(即创建)

窗口初始化参数:

SHOWCONSOLE:创建图形窗口时,保留控制台的显示

NOCLOSE:没有关闭功能

NOMINIMIZE:没有最小化功能

3.closegraph();关闭绘图窗口

4.cleardevice();清空绘图设备

二 、图形绘制函数用于在窗口绘制各种图形

1.绘图函数从填充样式分类可分为无填充,有边框填充,无边框三种。

以画圆为例

circle() 无填充

fillcircle() 有边框填充

solidcircle()无边框填充,参数分别为圆心的横坐标、纵坐标、半径大小。

2.从形状来分,常用的可以分为八种

circle 画圆 ellipse 画椭圆 pie 画扇形 polygon 画多边形

rectangle 画矩形 roundrect 画圆角矩形 line 画线 putpixel 画点


3.设置填充颜色setfillcolor(颜色);括号内输入颜色的英文名称

设置线条颜色setlinecolor(BLUE);

设置线条样式setlinestyle(高度,宽度,字体);

设置背景颜色setbkcolor();

三、文字绘制函数用于在窗口上绘制文字

1.outtextxy(int x,int y, LPCSTR str);在指定位置输出字符串

2.settextcolor(COLORREF color);设置当前文字颜色

3.settextstyle(int nHeight,int nWidth,LPTSTR lpszFace)设置字体样式

nHeight 指定高度

nWidth 字符的平均宽度。如果为0,则比例自适应                                                                 lpszFace 字体名称

4.textheight(LPCTSTR str);获取字符串实际占用的像素高度

5.textwidth(LPCTSTR str);获取字符串实际占用的像素宽度

四 、图像处理函数用于在窗口上显示图片

1.在使用图像之前,需要定义一个变量(对象),然后把图片加载进变量才能进行使用。

平时定义变量都是使用的基础数据类型,比如:int temp;

在使用图像的时候需要使用easyx提供给我们的类型:IMAGE,如:IMAGE img;

2.loadimage(IMAGE* pDstlmg,LPCTSTR plmgFile,int nWidth=0,int nHeight=0,bool  bResize=false);从文件中读取图像

pDstlmg. 11保 存图像的IMAGE对象指针                                                                                      plmgFile, //图片文件名

nWidth=0 //图片的拉伸宽度

nHeight=0, //图片的拉伸高度

bResize=false //是否调整IMAGE的大小以适应图片

3.putimage(int dstXint dstYIMAGE*pSrclmgDWORDdwRop=SRCCOPY);在当前设备上绘制指定图像。

dstX, //绘制位置的x坐标

dstY //绘制位置的y坐标

pSrclmg, //要绘制的IMAGE对象指针

dwRop=SRCCOPY,//三元光栅操作码

五、键盘消息函数用于获取键盘按键消息

1.用于获取鼠标消息的函数有两个

_getch();     需要头文件conio.h

GetAsyncKeyState(键值);     需要头文件windowsh但是由于EasyX包含了 windows头文件,所以无须自己包含(其他需要windows头文件的函数也一样,但是需要在 graphics.h的下方包含:比如放音乐的头文件mmsystem.h)


getch();需要使用返回值来判断


■与非ASCII表字符的按键比较,需要使用虚拟键值

如果是与字母比较直接写字母,比如’A                                                                             上:72 下:80  左:75  右:77

GetAsyncKeyState(键值);需要传入一个键值,如果按下返回真了

上:VK UP 下:VK DOWN 左:VK LEFT 右:VKRIGHT

六、播放音乐

1.为了实现用C语言播放音乐,我们需要用到windows的一个API

首先需要包含头文件windows。h和mmsystem。h(如果已经包含graphics.h则无

需包含)

然后还需要加载静态库winmm.lib

最后就可以使用mciSendString函数来播放音乐了

MCIERRORmciSendStringA(

LPCSTRIpstrCommand,//命令字符串:”命令设备[参数]”

LPSTRIpstrReturnString,//接收返回信息的缓冲区,为NULL时不返回信息

UINT uReturnLength, //上述缓冲区的大小

HWNDhwndCallback,//一般为NULL

);

2.使用方法:

mciSendString(“open ./ThatGirl.mp3 alias BGM”,NULL,0,NULL);//打开音乐 mciSendString(“playBGM”,NULL,0, NULL);//播放音乐

七、其他函数

1.在设备上不断进行绘图操作时,会产生闪屏现象,此时眼睛就受不了了,针对这个想象,我们需要使用两个函数去处理。

BeginBatchDraw();  开始批量绘图

—中间放置绘图代码—

EndBatchDraw();   结束批量绘制


2.GetHWnd();  获取窗口句柄,获取之后可以用来操作窗口

HWND hWnd=GetHWnd();//获得窗口句柄

修改窗口标题: SetWindowText(hWnd , “love”);

设置模态对话框: MessageBox(hWnd,”我是消息框”,”我是标题” ,MB OKCANCEL);



版权声明:本文为weixin_60895836原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。