标签:include etc 搜索引擎 代码 注册 turn while fopen getc
在2017年的时侯通过C语言和EasyX图形库编写了一个简单的像素绘图画板,当时是因为看了一个制作小游戏的视频,然后不知道干啥看到了一种像素风的图片,脑袋一热就写了一个像素绘画板。
话不多说,将代码分享出来:
#include<graphics.h>
#include<conio.h>
#include<stdio.h>
void gamebegin(void); //游戏开始界面
void gameplay(void); //玩游戏具体过程
void close(void); //释放资源
COLORREF colorArr[27]={ RGB(0,0,0),RGB(124,0,0),RGB(255,0,0),
RGB(0,0,124),RGB(124,0,124),RGB(255,0,124),
RGB(0,0,255),RGB(124,0,255),RGB(255,0,255),
RGB(0,124,0),RGB(124,124,0),RGB(255,124,0),
RGB(0,124,124),RGB(0124,124,124),RGB(255,124,124),
RGB(0,124,255),RGB(124,124,255),RGB(255,124,255),
RGB(0,255,0),RGB(124,255,0),RGB(255,255,0),
RGB(0,225,124),RGB(124,225,124),RGB(255,225,124),
RGB(0,255,255),RGB(124,255,255),RGB(255,255,255)};
void main()
{
gamebegin();
gameplay();
close();
//printf("谢谢使用!\n按任意键结束······\n\n\n\n\n\t\t\t\t\n\n");
}
void gamebegin()//游戏开始界面
{
initgraph(1500,800);//长宽1500*800
setbkcolor(RGB(180,238,180));// 用背景色清空屏幕
cleardevice();
//绘制27色小球
for(int y=80,i=0;y<780&&i<9;y+=80,i++)
{
for(int x=50,n=0;x<270&&n<3;x+=85,n++)
{
COLORREF c1=colorArr[i*3+n];
setfillcolor(c1);
setlinestyle(BS_SOLID);
setlinecolor(RGB(215,215,215));
fillcircle(x,y,29);
}
}
for(y=75,i=0;y<775&&i<9;y+=80,i++)//对应26个数字
{
for(int x=45,n=0;x<265&&n<3;x+=85,n++)
{
char a[30];
COLORREF c2=colorArr[i*3+n];
setbkcolor(c2);
settextcolor(RGB(50,50,80));
settextstyle(20, 0, _T("黑体"));
sprintf(a,"%d",i*3+n);
outtextxy(x, y, a);
}
}
//绘制清空按钮
setlinecolor(RGB(0,200,200));
setlinestyle(BS_SOLID,5);
rectangle(265,80,305,720);
rectangle(265,290,305,510);
settextcolor(RGB(0,0,0));
settextstyle(30, 0, _T("楷体"));
setbkcolor(RGB(180,238,180));
outtextxy(270,150,"保");
outtextxy(270,190,"存");
outtextxy(270,335,"点");
outtextxy(270,370,"击");
outtextxy(270,405,"清");
outtextxy(270,440,"屏");
//绘制网格
setlinecolor(RGB(200,200,200));
setlinestyle(BS_SOLID,10);
rectangle(325,5,1495,795);
setlinecolor(RGB(150,150,150));
setlinestyle(BS_SOLID);
for(int x=335;x<1490;x+=10)
for(int y=15;y<790;y+=10)
rectangle(x+5,y+5,x-5,y-5);
}
void close()//释放资源
{
getch();
closegraph();
return;
}
void gameplay()//玩游戏具体过程
{
COLORREF c3;
while(true)//对网格上色操作
{
while(MouseHit())
{
MOUSEMSG m=GetMouseMsg();//定义鼠标信息
switch(m.uMsg)
{
case WM_MOUSEMOVE://鼠标移动
if(m.mkLButton)
{//27色圆的范围,选择颜色
for(int y=80,i=0;y<780&&i<9;y+=80,i++)
{
for(int x=50,n=0;x<270&&n<3;x+=85,n++)
{
if(m.x<=x+25&&m.y<=y+25&&m.x>=x-25&&m.y>=y-25)
c3=colorArr[i*3+n];
for(int x=335;x<1490;x+=10)//网格范围,涂颜色,点击左键移动涂色
for(int y=15;y<790;y+=10)
if(m.x<=x+4&&m.y<=y+4&&m.x>=x-4&&m.y>=y-4)
{
setfillcolor(c3);
fillrectangle(x+5,y+5,x-5,y-5);
}
}
}
}
if(m.mkRButton)
{
for(int a=335;a<1490;a+=10)
for(int b=15;b<790;b+=10)
if(m.x<=a+4&&m.y<=b+4&&m.x>=a-4&&m.y>=b-4)
{
setfillcolor(RGB(180,238,180));
fillrectangle(a+5,b+5,a-5,b-5);
}
}
break;
case WM_LBUTTONDOWN://左键点击
// if(m.uMsg=WM_MOUSEMOVE||m.mkLButton)
// {
{//27色圆的范围,选择颜色
for(int y=80,i=0;y<780&&i<9;y+=80,i++)
{
for(int x=50,n=0;x<270&&n<3;x+=85,n++)
{
if(m.x<=x+25&&m.y<=y+25&&m.x>=x-25&&m.y>=y-25)
c3=colorArr[i*3+n];
for(int x=335;x<1490;x+=10)//网格范围,涂颜色,点击涂色
for(int y=15;y<790;y+=10)
if(m.x<=x+4&&m.y<=y+4&&m.x>=x-4&&m.y>=y-4)
{
//setlinecolor(c3);
setfillcolor(c3);
fillrectangle(x+5,y+5,x-5,y-5);
}
}
}
}
// }
if(m.x<=303&&m.x>=267&&m.y>=82&&m.y<=288)//保存操作
{
setlinecolor(RGB(0,150,200));
setlinestyle(BS_SOLID,5);
rectangle(265,80,305,290);
char str[200];
int wj=0;
for(wj=0;wj<100;)
{
sprintf(str,"C:\\Users\\念·墨白\\Desktop\\像素绘图\\保存\\%d.bmp",wj);
if(fopen(str,"r")!=NULL)
wj++;
else
{
saveimage(str);
break;
}
}
Sleep(100);
return ;
}
if(m.x<=303&&m.x>=267&&m.y>=292&&m.y<=508)//清空操作
{
closegraph();
gamebegin();
}
break;
case WM_RBUTTONDOWN:
{
for(int a=335;a<1490;a+=10)
for(int b=15;b<790;b+=10)
if(m.x<=a+4&&m.y<=b+4&&m.x>=a-4&&m.y>=b-4)
{
setfillcolor(RGB(180,238,180));
fillrectangle(a+5,b+5,a-5,b-5);
}
}
}
}
}
}
效果图,如下:
使用说明:
鼠标左键 | 鼠标右键 | 保存 | 点击清屏 |
---|---|---|---|
则色和填涂 | 橡皮擦 | 路径要在代码中定义、low爆了 | 应该不会变白板233 |
这是我画的:
这是妹妹画的:
说明:由于是2017年5月份左右,用时3天写完的,所以有许多不足的地方,性能方面,功能方面,界面美化方面等等,而且现在我也看不懂了,小纠结~~
你可能不会好奇我为什么要在2020年1月20日写下这一篇文章,时隔emmmm~我掐指算一算
巧了,我也没算出来。
其实,我是因为刚注册了来试试看这个后台怎么样,然后就复制粘贴了一篇我在另一个平台写的文章来试试效果。
既然神奇搜索引擎安排你搜到这条信息,并且冥冥之中有一股神奇的魔力让你点开了这篇文章,读到了此处......
那么感谢你一下,啦啦啦~
标签:include etc 搜索引擎 代码 注册 turn while fopen getc
原文地址:https://www.cnblogs.com/ranmomo/p/12218943.html