引用库
设置颜色
Easy X的库为graphic.h,通过initgraph初始化画布大小,设置颜色要用大写英文单词,easyx所支持的颜色库查看链接:颜色库
除了使用大写的单词表示颜色,也可以使用RGB进行配置,语法如:
setcolor(RGB(100,100,100));
setlinecolor(RED);
setbkcolor(LIGHTGRAY);
画线条
#include<graphic.h>
#include<conio.h>
void main()
{
initgraph(640,480); //initialize the size of canvas
setcolor(YELLOW); //set the pencile color
setfillcolor(GREEN); //set the painting color
fillcircle(100,50,20); //fill the circle located in (100,50), whose radius is 20px
getch();
closegraph(); //close the canvas
}
设置背景颜色
设置背景颜色需要setbkcolor函数完成,很多铁汁萌说我设置完bkcolor为啥控制台还是黑色的?
因为你设置了颜色没用,程序没有画上去,因此还需要先清一下屏:
#include <graphics.h>
#include <conio.h>
int main()
{
// 初始化绘图窗口
initgraph(640, 480);
// 设置背景色为蓝色
setbkcolor(BLUE);
// 用背景色清空屏幕
cleardevice();
// 设置绘图色为红色
setcolor(RED);
// 画矩形
rectangle(100, 100, 300, 300);
// 按任意键退出
_getch();
closegraph();
}
其中的cleardevice是关键。
这样我们画一个五子棋棋盘
#include<graphics.h>
#include<conio.h>
#define X 400
#define Y 400
int main()
{
int x,y;
initgraph(X,Y);
setbkcolor(YELLOW); //设置背景颜色
cleardevice(); //初始化画布
setlinecolor(BLACK); //绘制方格
for(x=10;x<X;x=x+20)
line(x,10,x,390);
for(y=10;y<Y;y+=20)
line(10,y,390,y);
setfillcolor(BLACK); //绘制小黑点
fillcircle(70,70,2); //左上角
fillcircle(330,70,2); //右上角
fillcircle(70,330,2); //左下角
fillcircle(330,330,2); //右下角
fillcircle(190,190,2); //中间
_getch();
closegraph();
}
画个球
若屏幕刷新过快,会导致画面显示不完整,因此easyx提供了BeginBatchDraw、FlushBatchDraw和EndBatchDraw三个函数,函数可以将命令囤积起来,在遇到FlushBatchDraw时一起释放,这样就不会出现卡顿的现象了。
画个反弹球
#include<conio.h>
#include<Windows.h>
#define Heigh 640
#define Width 580
#define radius 20
int main()
{
int x=300,y=100;
initgraph(Heigh,Width);
setbkcolor(WHITE);
cleardevice();
int vx=5,vy=5;
BeginBatchDraw();
while(1)
{
//绘制小球
setfillcolor(BLACK);
setcolor(BLACK);
fillcircle(x,y,radius);
FlushBatchDraw();
Sleep(2);
//消去小球
setfillcolor(WHITE);
setcolor(WHITE);
fillcircle(x,y,radius);
//反弹小球
if(x==radius || x==Heigh-radius)
vx=-vx;
if(y==radius || y==Width-radius)
vy=-vy;
x=x+vx;
y=y+vy;
}
EndBatchDraw();
getch();
closegraph();
}