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语言开发推箱子游戏项目实战相关推荐
- c++ 小游戏_C/C++编程笔记:C语言写推箱子小游戏,大一学习C语言练手项目
C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...
- 初学者一学就会的小程序开发——推箱子
最经典的推箱子游戏,类似的游戏你一定早就玩过.要控制搬运工上下左右移动,来将箱子推到指定地点. 经典的推箱子是一个来自日本的古老游戏,目的是在训练你的逻辑思考能力.在一个狭小的仓库中,要求把木箱放到指 ...
- 安卓游戏开发推箱子_保持冷静并砍箱子-开发
安卓游戏开发推箱子 Hack The Box (HTB) is an online platform allowing you to test your penetration testing ski ...
- c 语言推箱子vs,基于C语言实现推箱子游戏
本文实例为大家分享了C语言实现推箱子游戏的具体代码,供大家参考,具体内容如下 代码在vs2013上测试运行. 思想: 1):地图用二维数组实现,箱子.墙壁.人等事物用不同的数字表示,遍历二维数组,遇到 ...
- C语言书写推箱子(坤坤版easyx库)
C语言书写推箱子(坤坤版easyx库) 游戏效果的展示 运用的知识点(必看) 代码的讲解 游戏地图的实现 地图的初始化 地图图片的加载 地图图片的放置 人物和箱子的移动(重点) 游戏结束的判断 音乐的 ...
- 用C语言实现推箱子小游戏基础程序plus
目录 设计一个简单的推箱子游戏 功能设计要求: 代码实现 数据定义头文件data_def.h 窗口设置头文件WindowsSet.h WindowsSet.cpp 上移函数 矩阵旋转函数 游戏帧 菜单 ...
- android开发--推箱子小游戏(二)
一.前言 迎来第二章的更新啦:使用ListView实现关卡的选择. 本章的内容有点小复杂,毕竟涉及使用了安卓开发中最难用也是最常用的控件之一:ListView 本章可以说是复杂但是单一吧.主要是想大家 ...
- c语言程序推箱子详细设计,C语言实现推箱子项目
本文实例为大家分享了C语言实现推箱子的具体代码,供大家参考,具体内容如下 项目展示 首先介绍结构板,结构版是图形版的逻辑基础: 结构版效果图: 地图: 二维数组储存地图,0代表空地,1代表墙,4代表箱 ...
- 语言程序推箱子课设报告_学完C语言,可以去哪些应用领域工作?
C语言是目前世界上流行.使用非常广泛的高级程序设计语言. 在TIOBE已公布2020年8月的编程语言排行榜.C语言依然保持排行第一! 前20名排行如下: C语言对操作系统和系统使用程序以及需要对硬件进 ...
最新文章
- 【转】感知哈希算法——找出相似的图片
- 图像处理-PCA人脸识别
- ThinkPHP框架学习(二)
- Day1 字符串格式化
- windows批量添加用户
- java javafx webview_基于JavaFX WebView 的采集开发,了解一下?
- MySQL 调优/优化的 101 个建议!
- CSS-滤镜 -webkit-filter
- ASP.NET MVC TagBuilder使用
- 通俗讲解c语言指针的作用,C语言指针讲解(史上最通俗最全面最经典)
- Python如何提取docx中的超链接
- HW Eth-Trunk链路聚合
- Appium基础 — APPium安装(二)
- mysql chunk_【MySQL参数】-innodb_buffer_pool_chunk_size
- 事物(Transaction)
- 矩阵相乘的strassen算法_4-2.矩阵乘法的Strassen算法详解
- Qt之绘制折线图:图标以及坐标轴设置
- 60-硅谷课堂6-硅谷课堂-公众号消息和微信授权-- 笔记
- 游戏设计模式-命令模式
- 基于BP-Adaboost神经网络的高斯函数模型预测研究-含Matlab代码