c语言写一个格子涂色的游戏,格子涂色游戏(VC绘图--10:用鼠标控制绘图作业)...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

二楼代码,用鼠标左键选色,填色。用鼠标右键退出。下面是代码及注释

#include

void gezi();//函数声明

int fill();//函数声明

int main(void)

{

initgraph(640, 480);

gezi();//调用画格子和调色板函数

fill();//调用鼠标控制填色函数

closegraph();

}

void gezi()//画格子及调色板函数

{

int color[9] = { BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, YELLOW, WHITE };//调色板拥有的颜色,可以自己增加

setlinecolor(LIGHTGRAY);//设置格子边框颜色

for (int i = 0; i <= 16; i++)//画格子

{

line(i * 30 + 80, 40, i * 30 + 80, 280);//画17条竖线

if (i <= 8)

line(80, i * 30 + 40, 560, i * 30 + 40);//画9条横线

}

for (int i = 0; i <= 9; i++)//画调色板的格子

{

line(i * 50 + 95, 350, i * 50 + 95, 400);//画10条竖线

if (i < 2)

{

line(95, i * 50 + 350, 545, i * 50 + 350);//画2条横线

}

}

for (int i = 0; i < 9; i++)//填充调色板格子

{

setfillcolor(color[i]);//设置填充颜色

floodfill(i * 50 + 100, 375, LIGHTGRAY);//填充颜色

}

}

int fill()

{

MOUSEMSG m;

int whichcolor=BLACK;//颜色值,默认黑色

while (true)

{

m = GetMouseMsg();

if (m.uMsg == WM_LBUTTONDOWN)//判断左键是否按下

{

if (m.y >= 350 && m.y <= 400)//判断鼠标是否位于调色板区域

{

whichcolor= getpixel(m.x,m.y);//返回该点的颜色

}

if (m.y >= 40 && m.y <=280)//判断鼠标是否位于待填色格子区域

{

setfillcolor(whichcolor);//设置填充颜色

floodfill(m.x, m.y, LIGHTGRAY);//填充颜色

}

}

if (m.uMsg == WM_RBUTTONDOWN)//判断是否按下右键

return(0);//结束函数

}

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值