怎么用C语言实现游戏项目推箱子效果
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,本篇内容主要讲解"怎么用C语言实现游戏项目推箱子效果",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用C语言实现游戏项目推箱子效果"吧!直接开始吧首先是
千家信息网最后更新 2024年11月23日怎么用C语言实现游戏项目推箱子效果直接开始吧
本篇内容主要讲解"怎么用C语言实现游戏项目推箱子效果",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用C语言实现游戏项目推箱子效果"吧!
直接开始吧
首先是我们用二维数组特定的数字描绘出这个地图
int cas = 0;int map[3][8][8] ={ 1,1,1,1,1,1,1,1, 1,3,4,0,0,4,3,1, 1,0,1,3,0,1,0,1, 1,0,1,4,0,1,0,1, 1,0,0,5,0,0,0,1, 1,0,1,0,0,1,0,1, 1,3,4,0,0,4,3,1, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, 1,3,4,0,0,4,3,1, 1,0,1,3,0,1,0,1, 1,0,1,4,0,1,0,1, 1,3,4,5,0,0,0,1, 1,0,1,0,0,1,0,1, 1,3,4,0,0,4,3,1, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, 1,3,4,0,0,4,3,1, 1,0,1,3,0,1,0,1, 1,0,1,4,0,1,0,1, 1,3,4,5,0,4,3,1, 1,0,1,0,0,1,0,1, 1,3,4,0,0,4,3,1, 1,1,1,1,1,1,1,1};
然后来绘制我们的推箱子地图
void drawGraph() { for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { //算贴图的坐标 int x = 50 * j; int y = 50 * i; switch (map[cas][i][j]) { case 0: //一个汉字符号占用两个位置 //printf(" "); putimage(x, y, img + 0); break; case 1: putimage(x, y, img + 1); //printf("■"); break; case 3: putimage(x, y, img + 2); //printf("☆"); break; case 4: putimage(x, y, img + 3); //printf("★"); break; case 5: case 8: putimage(x, y, img + 4); //printf("人"); break; case 7: putimage(x, y, img + 5); //printf("●"); break; } } //printf("\n"); }}
之后就是我们的游戏函数,怎样去用什么按键去控制我们的角色
void keyDown() { int userKey = _getch(); //不可见输入 //定位:找到人的位置 int i = 0; int j = 0; for (i = 1; i < 8; i++) { for (j = 1; j < 8; j++) { if (map[cas][i][j] == 5 || map[cas][i][j] == 8) { goto NEXT; } } } NEXT: //我们这个游戏用什么按键去玩 switch (userKey) { case 'W': case 'w': case 72: if (map[cas][i - 1][j] == 0 || map[cas][i - 1][j] == 3) { map[cas][i][j] -= 5; map[cas][i - 1][j] += 5; } if (map[cas][i - 1][j] == 4 || map[cas][i - 1][j] == 7) { if (map[cas][i - 2][j] == 0 || map[cas][i - 2][j] == 3) { map[cas][i][j] -= 5; map[cas][i - 1][j] += 1; map[cas][i - 2][j] += 4; } } break; case 's': case 'S': case 80: if (map[cas][i + 1][j] == 0 || map[cas][i + 1][j] == 3) { map[cas][i][j] -= 5; map[cas][i + 1][j] += 5; } if (map[cas][i + 1][j] == 4 || map[cas][i + 1][j] == 7) { if (map[cas][i + 2][j] == 0 || map[cas][i +2][j] == 3) { map[cas][i][j] -= 5; map[cas][i + 1][j] += 1; map[cas][i + 2][j] += 4; } } break; case 'a': case 'A': case 75: if (map[cas][i][j - 1] == 0 || map[cas][i][j - 1] == 3) { //a+=1 a=a+1 复合赋值运算符 map[cas][i][j] -= 5; map[cas][i][j - 1] += 5; } if (map[cas][i][j - 1] == 4 || map[cas][i][j - 1] == 7) { if (map[cas][i][j - 2] == 0 || map[cas][i][j - 2] == 3) { map[cas][i][j] -= 5; map[cas][i][j - 1] += 1; map[cas][i][j - 2] += 4; } } break; case 'd': case 'D': case 77: if (map[cas][i][j + 1] == 0 || map[cas][i][j + 1] == 3) { map[cas][i][j] -= 5; map[cas][i][j + 1] += 5; } if (map[cas][i][j + 1] == 4 || map[cas][i][j + 1] == 7) { if (map[cas][i][j + 2] == 0 || map[cas][i][j + 2] == 3) { map[cas][i][j] -= 5; map[cas][i][j + 1] += 1; map[cas][i][j + 2] += 4; } } break; }}
再然后就是我们如何去判断游戏的结果
//胜负的判断:int gameOver() { //地图上没有箱子就可以结束 for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { if (map[cas][i][j] == 4) { return 0; } } } return 1;}
最后运行我们的主函数就行啦
int main() { loadResource(); mciSendString("open 1.mp3", 0, 0, 0); mciSendString("play 1.mp3 repeat", 0, 0, 0); initgraph(50 * 8, 50 * 8); while (1) { drawGraph(); if (gameOver()) { cas++; //变换关卡 if(cas==3) break; } keyDown(); //system("cls"); } closegraph(); //printf("GameOver!\n"); return 0;}
到此,相信大家对"怎么用C语言实现游戏项目推箱子效果"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
推箱子
效果
语言
项目
地图
j++
位置
内容
函数
就是
按键
学习
实用
更深
两个
关卡
兴趣
坐标
实用性
实际
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
fifaonline4数据库
服务器的电源适配器是什么
防护智能服务器网站
数据库面试答案
韩天明的服务器
龙猫互联网络科技
大学生网络安全文明论文
网络安全法与执法
数据库约束的命令
战争雷霆有多少国家有服务器
上海互联网智慧社区软件开发
动态创建数据库文件
linux服务器流量突然增大
关于网络安全有什么
互联网科技产业园招商成果
服务器主板温度保护
计算机网络技术专业软件应用
广东软件开发电话
操作系统平台数据库服务器
软件开发接私活app
浅谈如何进行网络安全评估
fifaonline4数据库
过程数据库
物联网网络安全策略
安全事故死亡人数数据库
sql数据库中的find函数
乐业乐活网络技术(天津)公司
网络安全教案初中生
冥狱网络安全团队
永州联通dns服务器设置多少