怎么用C语言实现游戏项目推箱子效果
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,本篇内容主要讲解"怎么用C语言实现游戏项目推箱子效果",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用C语言实现游戏项目推箱子效果"吧!直接开始吧首先是
千家信息网最后更新 2025年01月22日怎么用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安全错误
数据库的锁怎样保障安全
rman 复制 数据库
最新软件开发合同模板
游戏软件开发公司流程
网络安全法 解读心得体会
Web数据库技术在线考试系统
校园安全网络安全观后感
中国台湾it软件开发制作
加强网络安全与管理单元测验卷
全文数据库有哪几个数据库
毕设答辩怎么介绍数据库
白银市网络安全保卫部门
视频聊天软件开发哪家产品好
把数据库中的sys有什么后果
网络安全事件连续爆发
ff14服务器人数
最便宜的服务器租用
连云港软件开发推荐
建立h5服务器
网络技术人员实操考试
数据库基础操作
厦门学网络技术
游戏软件开发公司流程
网络安全立法的大咖
商业系统数据库
数据库共享锁
网络技术学徒招聘
查看数据库编码的sql语句
通州数据库安全防护系统
周易八卦数据库大全
app升级服务器地址