C语言+图形库创建——酷表白连连看游戏

void putimg();//加载图片

void init();//数组赋值

void draw();//绘图部分

int playgame();//获取鼠标点击

void play();//处理两次点击

无效洛();

//空白

//==========================================

//函数定义部分

无效 putimg()

{//图形库中的函数

initgraph(640, 480);//创建一个窗口

loadimage(&img[0], “1.jpg”, 80, 80);//加载图片

loadimage(&img[1], “2.jpg”, 80, 80); //L 多字节字符集

loadimage(&img[2], “3.jpg”, 80, 80);

loadimage(&img[3], “4.jpg”, 80, 80);

loadimage(&img[4], “5.jpg”, 80, 80);

loadimage(&img[5], “6.jpg”, 80, 80);

loadimage(&img[6], “7.jpg”, 80, 80);

loadimage(&img[7], “8.jpg”, 80, 80);

loadimage(&img[8], “background.jpg”, 640, 480);//窗口大小一样

}

无效初始化()

{

//1.map 分配每张图片在哪里放哪张图片

//map成对随机分配,保证每个都有

//先使用arr数组处理map

int arr[8 * 6] = { 0,0,0,0,0,0,

1,1,1,1,1,1,

2,2,2,2,2,2,

3,3,3,3,3,3,

4,4,4,4,4,4,

5,5,5,5,5,5,

6,6,6,6,6,6,

7,7,7,7,7,7 };//初始映射

// shuffle arr之后,放到这个map数组中

//随机数

srand((unsigned)time(NULL));//生成随机数随机数种子 time.h

int length = 48;//arr 长度

国际温度;

//分配地图

对于 (int i = 0; 我

{

对于 (int j = 0; j

{

//随机取其中一个arr赋值给map[i][j]

temp = rand() % 长度;

map[i][j] = arr[temp];//提取出来的数字不能再使用了

//取出的号码放在后面

for (int k = temp; k

{

arr[k] = arr[k + 1];//k+1

}

lenth–;//数组的有效长度减一

}

}

win = 48;//记录当前图片数量

//根据贴图纹理打乱贴图

}

无效绘制()

{

开始批量绘制();

//背景——粘贴背景

putimage(0, 0, &img[8]);

//粘贴另一个图像

对于 (int i = 0; 我

{

对于 (int j = 0; j

{

//循环遍历数组

开关(地图[i][j])

{

case 0://粘贴第一张图片

putimage(80 * i, 80 * j, &img[0]); 休息;

案例一:putimage(80 * i, 80 * j, &img[1]); 休息;

案例2:putimage(80 * i, 80 * j, &img[2]); 休息;

案例3:putimage(80 * i, 80 * j, &img[3]); 休息;

案例4:putimage(80 * i, 80 * j, &img[4]); 休息;

案例5:putimage(80 * i, 80 * j, &img[5]); 休息;

案例6:putimage(80 * i, 80 * j, &img[6]); 休息;

案例 7:putimage(80 * i, 80 * j, &img[7]); 休息;

}

}

}

EndBatchDraw();

}

诠释游戏()

{

//图形库函数

//1.鼠标信息

MOUSEMSG msg;//存储鼠标信息

msg = GetMouseMsg();//获取鼠标信息

//根据鼠标位置鼠标信息

开关 (msg.uMsg)

{

案例 WM_LBUTTONDOWN:

//msg.x msg.y 第一张图片 0

//返回坐标值 map[msg.x / 80][msg.y / 80];

//86–>地图[8][6]

返回 msg.x / 80 * 10 + msg.y / 80;

//返回msg.x/8+msg.y/80;

//int 除法不保留小数 3/4 0 3/4*4=0

图片[1]-C语言+图形库创建——酷表白连连看游戏-老王博客

休息;

}

return -1;//没有得到值

}

无效播放()

{

//获取两次鼠标点击 1. 两次鼠标点击都有效

int point1, point2;//获得两次鼠标点击

while ((point1 = playgame()) == -1 || map[point1 / 10][point1 % 10] == -1);//获取坐标

//outtextxy(point1 / 10 * 80, point1 % 10 * 80, “get”);

设置线颜色(红色);

矩形(point1 / 10 * 80, point1 % 10 * 80, point1 / 10 * 80 + 80, point1 % 10 * 80 + 80);

// 根据坐标判断

//1.有没有拿到内容 point1 = playgame() != -1

//2.是不是已经赋值的内容 map[point1 / 10][point1 % 10] != -1

//删除的部分 = -1

而 ((point2 = playgame()) == -1 || 地图[point2 / 10][point2 % 10] == -1);

// 只加一个

//可否淘汰

//可以消除1.坐标不同2.图片相同

if (point1 != point2 && map[point1 / 10][point1 % 10] == map[point2 / 10][point2 % 10])

{

//连接部分

line(point1 / 10*80+30,point1 % 10*80+30,point2 / 10*80+30,point2 % 10*80+30);//连接两个坐标

睡眠(500);//500ms

map[point1 / 10][point1 % 10] = -1;//图片和数组钩子-1没有对应的图片绘制

地图[point2 / 10][point2 % 10] = -1;

win -= 2;//消除部分

}

别的

{

// 未删除

}

}

无效洛()

{

//别名歌曲

mciSendString(“打开 1.mp3”, 0, 0, 0);

mciSendString(“播放 1.mp3”, 0, 0, 0);

setbkmode(TRANSPARENT);//设置文字背景透明

settextcolor(LIGHTGRAY);//设置文字颜色

settextstyle(30, 0, “粗体”);

char 诗[2][9] = { “沉默的爱”, “沉默的欢乐” };

//一个中文占2个字节,8个字节考虑字符串\0

//黄鹂和青柳,你还没有男朋友

/*outtextxy(0, 0, 诗[0]);

outtextxy(0, 30, 诗[1]);*/

//文字一个一个循环出现,每次输出一个中文

//1.中文占两个字节,不能在char\0三个字节中存储字符串

char word[3];//保存一个中文单词

对于 (int i = 0; 我

{

对于 (int j = 0; j

{

词[0] = 诗[i][j];

词[1] = 诗[i][j + 1];

字[2] = ‘\0’;

outtextxy(15*j+100,30*i,word);

睡眠(200);

if (poem[i][j + 2] == ‘\0’) 中断;

}

}

//弹出内容

HWND hwnd = GetHWnd();//获取当前窗口句柄

MessageBox(hwnd, “我爱你”, “NAME”, MB_OK);

MessageBox(hwnd, “夏奇”, “制片人”, MB_OK);

}

//=========================

主函数()

{

putimg();

在里面();

画();

while (win!=0)//循环部分

{

玩();

draw();// 纹理

}

//告白部分

//一首最喜欢的人写的一句话

// 一个段落

/*initgraph(640, 480);

loadimage(NULL, “background.jpg”, 640, 480);*/

低();

获取字符();

返回0;

}

最终效果图,小编会贴出来的。如果只是材料,有时您可以自己找到它。需要小编的素材图片可以加我的群466572167,群里也有素材可以下载学习,可以交流讨论

加群466572167,可以交流学习

加群466572167交流学习

对于编译工具,小编会给个建议:开发工具VS 2013 2015(Vs2017不能)VC可以

但是DEV C /GCC /CODEBLOCK不能c语音游戏程序,vs2017之所以不能,是因为图形库还不支持。

额外需要的东西是1.图形库easyx graphics.h需要安装2.素材9张图片

涉及的知识点:

图形库的一些功能(注释)

1.数组

2.if for 分支循环

3.函数

4.随机数

编辑会讲一会。需要素材的可以加编辑群466572167,群里自然也有资料下载,大家可以交流改进。今天临时写个小项目,注意了,小编也写出来了c语音游戏程序,如果素材自然,图片自己找,不一定要和什么一模一样编辑写道。涉及的知识点不多,只是C语言的基础知识,主要是因为编程是思维逻辑,这点很重要。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论