欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

C语言开发推箱子游戏项目实战

发布时间:2023/12/2 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C语言开发推箱子游戏项目实战 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

C语言能做什么?

相信学过C语言的各位都会有一个疑问,我们学了C语言到底可以做什么?或许有人会说做系统开发、驱动开发等等,但是这个感觉离我们好远,甚至于我们学C语言都仅仅是为了用程序做数学题,要不就是用C语言来实现数据结构。可是这样的学习是非常无趣的,那么大家接下来可以看看我们学了的C语言到底可以做些什么有意思的事情吧!

一、图形界面开发 

说到图形界面开发可能大家听起来比较陌生,因为平常做编程题所用到的都是Windows控制台应用程序,也就是大家经常所说的的“黑窗口”,这个“黑窗口”即不好看,也无法更改,一点都没意思,那么要怎么做图形界面开发呢?

下面我们开始创建一个图形界面窗口:

示例代码:

#include <graphics.h> #include <stdio.h> int main() {// 创建界面, (540,540)是窗口的大小initgraph(540, 540);// 更换背景颜色并刷新setbkcolor(WHITE);cleardevice();// 关闭图形界面窗口closegraph();return 0; }

二、添加资源素材图片 

只有纯色窗口太单调了怎么办?

示例代码:

#include <graphics.h> #include <stdio.h> int main() {// 创建界面, (540,540)是窗口的大小initgraph(540, 540);// 更换背景颜色并刷新setbkcolor(WHITE);cleardevice();// 加载素材图片并显示loadimage(&img[0], L"./res/0.jpg");putimage(0,0,&img[0]);// 关闭图形界面窗口closegraph();return 0; }

三、添加游戏音乐

有了界面和图片素材之后确实好看了很多,但是总是缺少了什么。没错,就是游戏的音乐,我们玩的的游戏都是有音乐的,那么怎么使用C语言代码来播放音乐呢?

示例例题:

#pragma comment (lib,"winmm.lib") int main() {// 播放背景音乐mciSendString(L"open music.mp3 alias BGM ", 0, 0, 0);mciSendString(L"play BGM", 0, 0, 0);return 0; }

好了,音乐播放也搞定了,那么下面就是游戏的结构设计了,这里就不详细描述了,大家可以看下面的完整项目代码。

四、完整代码 

代码示例:

// 判断游戏是否过关 int Victory(int map[9][9]) {for (int x = 0; x < 9; x++){for (int y = 0; y < 9; y++){if (map[x][y] == 2){return 0; // 如果还有炸弹,游戏还要继续}}}return 1; // 没有炸弹,进入下一关 }// 玩游戏 int PlayGame(int map[9][9]) {loop = 0;Print(map);Find(map);do{switch (_getch()){case 72: Move(map, -1, 0); break; // ↑case 75: Move(map, 0, -1); break; // ←case 77: Move(map, 0, 1); break; // →case 80: Move(map, 1, 0); break; // ↓case ' ': loop = 1; return 0; // 复位case 27: exit(0); break; // 按下esc键结束}} while (!Victory(map)); // 通过Victory函数来判断是否通关Sleep(2000);princess(60 * x1, 60 * y1); // 公主出现Sleep(2000);MessageBox(0, _T("公主已经被抓走了"), _T("坏消息"), MB_SYSTEMMODAL);return 0; } // 5.游戏地图关卡 void GameMap() {// 定义一个三维地图数组int OneMap[5][9][9] = {{ {6, 6, 6, 6, 6, 6, 6, 6, 6 },{6, 6, 6, 3, 6, 6, 6, 6, 6 },{6, 6, 6, 0, 6, 6, 6, 6, 6 },{6, 6, 6, 2, 0, 2, 3, 6, 6 },{6, 3, 0, 2, 1, 6, 6, 6, 6 },{6, 6, 6, 6, 2, 6, 6, 6, 6 },{6, 6, 6, 6, 3, 6, 6, 6, 6 },{6, 6, 6, 6, 6, 6, 6, 6, 6 },{6, 6, 6, 6, 6, 6, 6, 6, 6 },},{ {6, 6, 6, 6, 6, 6, 6, 6, 6 },{6, 1, 0, 0, 6, 6, 6, 6, 6 },{6, 0, 2, 2, 6, 6, 6, 6, 6 },{6, 0, 2, 0, 6, 6, 6, 3, 6 },{6, 6, 6, 0, 6, 6, 6, 3, 6 },{6, 6, 6, 0, 0, 0, 0, 3, 6 },{6, 6, 0, 0, 0, 6, 0, 0, 6 },{6, 6, 0, 0, 0, 6, 6, 6, 6 },{6, 6, 6, 6, 6, 6, 6, 6, 6 } },{ {6, 6, 6, 6, 6, 6, 6, 6, 6 },{6, 6, 1, 0, 6, 6, 6, 6, 6 },{6, 6, 0, 2, 0, 0, 6, 6, 6 },{6, 6, 6, 0, 6, 0, 6, 6, 6 },{6, 3, 6, 0, 6, 0, 0, 6, 6 },{6, 3, 2, 0, 0, 6, 0, 6, 6 },{6, 3, 0, 0, 0, 2, 0, 6, 6 },{6, 6, 6, 6, 6, 6, 6, 6, 6 },{6, 6, 6, 6, 6, 6, 6, 6, 6 },},{ {6, 6, 6, 6, 6, 6, 6, 6, 6 },{6, 6, 0, 1, 3, 3, 3, 6, 6 },{6, 6, 0, 0, 0, 6, 6, 6, 6 },{6, 6, 6, 2, 0, 0, 0, 0, 6 },{6, 0, 0, 0, 6, 2, 6, 0, 6 },{6, 0, 2, 0, 6, 0, 0, 0, 6 },{6, 0, 0, 0, 6, 6, 6, 6, 6 },{6, 6, 6, 6, 6, 6, 6, 6, 6 },{6, 6, 6, 6, 6, 6, 6, 6, 6 },},{ {6, 6, 6, 6, 6, 6, 6, 6, 6 },{6, 6, 0, 1, 0, 6, 6, 6, 6 },{6, 6, 0, 6, 2, 0, 0, 6, 6 },{6, 0, 5 ,3, 0, 3, 0, 6, 6 },{6, 0, 0, 2, 2, 0, 6, 6, 6 },{6, 6, 6, 0, 6, 3, 6, 6, 6 },{6, 6, 6, 0, 0, 0, 6, 6, 6 },{6, 6, 6, 6, 6, 6, 6, 6, 6 },{6, 6, 6, 6, 6, 6, 6, 6, 6 },}};// 设置当前地图int map[9][9];for (int i = 0; i < 5; i++){do{loop = 0;for (int j = 0; j < 9; j++){for (int k = 0; k < 9; k++){map[j][k] = OneMap[i][j][k]; // 对地图赋值}}// 6.调用玩游戏的函数PlayGame(map);} while (loop);} }int main() {// 1.创建界面initgraph(540, 540);// 2.更换背景颜色setbkcolor(WHITE);cleardevice();// 3.播放背景音乐mciSendString(_T("open ./res/超级玛丽.mp3 alias BGM "), 0, 0, 0);mciSendString(_T("play BGM"), 0, 0, 0);// 4.加载图片loadimage(&img[0], _T("./res/0.jpg"));loadimage(&img[1], _T("./res/1.jpg"));loadimage(&img[2], _T("./res/2.jpg"));loadimage(&img[3], _T("./res/3.jpg"));loadimage(&img[4], _T("./res/4.jpg"));loadimage(&img[5], _T("./res/5.jpg"));loadimage(&img[6], _T("./res/6.jpg"));loadimage(&img[7], _T("./res/7.jpg"));// 5.调用游戏地图关卡GameMap();closegraph();return 0; }

另外本程序还需要一部分头文件,想要领取可以在公众号的群聊分类中加群领取。

关注它,

你就可以得到

很多你想要的C/C++

开发工具及学习视频资料

总结

以上是生活随笔为你收集整理的C语言开发推箱子游戏项目实战的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。