前言
准备一个任意vs系列的编译器(vs c++ 6.0, vs2011, vs2013, vs2017, vs2019等等)
下载EasyX帮助文档
下载EasyX并根据提示完成配置(很简单的,跟着提示走一次成功,vscode配置比较麻烦本文不做说明)
下载地址:https://easyx.cn/
参考视频:【C/C++/EasyX】学编程,做游戏,小白快速入门图形编程,零基础入门到精通,学习就是这么快乐_哔哩哔哩_bilibili
EasyX是什么?
EasyX是针对C++的图形库,可以帮助C/C++初学者快速上手图形的游戏编程。比如:可以基于EasyX图形库很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块,贪吃蛇,黑白棋等小游戏.
许多人学编程都是从C语言入门的,而目前的现状是:
学习只交基础语法,一直都在黑窗口上学习,同学们都学习很乏味。
即使有的学校教图形编程也是,使用一些难度较高的,比如win32,OpenGL门槛依然很高,初学者会受严重打击的.
于是就有了这个EasyX库,等这个学完后,我会后续更新天天酷跑,贪吃蛇,扫雷等小游戏,供大家练习参考,OK,现在开搞
EasyX坐标和设备
- 坐标默认的原点是在窗口的左上角,X轴向右为正,Y轴向下为正,度量单位是像素点。
窗口函数
头文件:#include
- initgraph(int width,int height,int flag=NULL);用于初始化绘图窗口(创建窗口)
width 指定窗口的宽度
height 指定窗口的高度
flag 窗口的样式,默认为NULL
- closegraph(); 关闭绘制窗口
- cleardevice();清空绘图设备
代码示例:
#include<iostream> //1.包含图形库头文件,就能使用提供给我的函数 #include<graphics.h> using namespace std; int main() { //2.创建一个窗口,q确定窗口大小 initgraph(640,480); getchar(); //2.1关闭窗口 closegraph(); return 0; }
运行结果:
EasyX颜色
RGB方式
setcolor(RGB(0,0,0));
字母方式
setcolor(BLACK);
六个十六进制
setcolor(0x000000);
一些常见的颜色
- 0x000000 黑色
- 0xFF0000 蓝色
- 0xFFAAAA 蓝色
- 0xFFFFFF 白色
图形绘制函数
图形绘制函数用于在窗口上绘制各种图形
- 绘图函数从填充样式分类可分为无填充,有边框填充,无边框三种。
- 以画圆为例:
1. circle() 无填充 2. fillcircle() 有边框填充 3. solidcircle() 无边框填充
从形状来分,常用的可以分为八种
circle画圆 elipse画椭圆 pie画扇形 polygon画多边形
rectangle画矩形 roundrect画圆角矩形 line画线 putpixel 画点
设置填充颜色: setfillcolor; 设置线条颜色: setlinecolor; 设置线条样式: setlinestyle;
代码示例:
#include<iostream> //1.包含图形库头文件,就能使用提供给我的函数 #include<graphics.h> using namespace std; int main() { 2.创建一个窗口,q确定窗口大小 initgraph(640,480); //3.画圆 setfillcolor(YELLOW);//设置填充颜色 setlinecolor(BLUE);//设置线条颜色 setlinestyle(PS_SOLID,5);//设置线条样式 circle(50, 50, 50); fillcircle(50, 100, 50); solidcircle(50, 250, 50); getchar(); //2.1关闭窗口 closegraph(); return 0; }
运行结果:
设置背景颜色
1. setbkcolor(WHITE);//设置背景颜色 2. cleardevice();//清屏,清除掉原来的背景 3. //这两步合起来才能设置背景颜色
代码示例:
2.创建一个窗口,q确定窗口大小 initgraph(640,480); //设置背景颜色,one two两步才能设置背景颜色 setbkcolor(WHITE);//one cleardevice();//清屏//two //3.画圆 setfillcolor(YELLOW);//设置填充颜色 setlinecolor(BLUE);//设置线条颜色 setlinestyle(PS_SOLID,5);//设置线条样式 circle(50, 50, 50); fillcircle(50, 100, 50); solidcircle(50, 250, 50); getchar(); //2.1关闭窗口 closegraph();
运行结果:
文字绘制函数
- outtextxy(int x,int y,PCTSTR str); 在指定位置输出字符串
- settextcolor(COLORREF color);设置当前文字颜色
- settextstyle(int nHeight,int nWidth,LPCTSTR lpszFace) 设置字体样式
- textheight(LPCTSTR str);获取字符串实际占用的像素高度
- textwidth(LPCTSTR str);获取字符串实际占用的像素宽度
输出字符串,设置文字颜色
1. settextcolor(RED);//设置文字颜色 2. outtextxy(50, 50, "我是QK");
代码示例:
#include<iostream> //1.包含图形库头文件,就能使用提供给我的函数 #include<graphics.h> using namespace std; int main() { initgraph(640,480); //设置背景颜色,one two两步才能设置背景颜色 setbkcolor(WHITE);//one cleardevice();//清屏//two settextcolor(RED);//设置文字颜色 outtextxy(50, 50, "我是QK"); getchar(); //2.1关闭窗口 closegraph(); return 0; }
//1.在字符串前面加上大写的L
//2.用TEXT()把字符串包起来,_T()
正确方式:
1. settextcolor(RED);//设置文字颜色 2. //1.在字符串前面加上大写的L 3. //2.用TEXT()把字符串包起来,_T() 4. outtextxy(50, 50, L"我是QK");
运行结果:
设置字体样式,大小,字体(上面的代码也加上去)
settextstyle(50, 0, L"楷体");
运行结果:
我们会发现字体是有背景的
1. //设置背景模式 2. setbkmode(TRANSPARENT);
运行结果
文字居中
settextcolor(RED); setfillcolor(BLUE); setlinecolor(BLACK); fillrectangle(200, 50, 500, 100);//设置一个矩形 wchar_t arr[] = L"我是居中显示的maye"; int width = 300/2-textwidth(arr) / 2; int height =50/2- textheight(arr) / 2; outtextxy(width+200,height+50 ,arr);
运行结果:








