![33d7675ad720ff5afcb57b25abe9f1e2.png](https://i-blog.csdnimg.cn/blog_migrate/c28b67c4244359f12b69b9bab2a5f3f2.jpeg)
第一步标题
推箱子小游戏制作流程
用到的知识点
1.二维数组(表示地图)
2.循环
3.条件判断
4.加载图片
loadimage();
5.绘制图片
putimage();
游戏三部曲
1、加载游戏数据(初始化 InitGame();)
2、绘制图形(绘图 RenderGame();)
3、玩家操作(数据更新 UpdateGame();)
InitGame(); //初始化游戏
while(1)
{
RenderGame(); //绘制游戏
UpdateGame(); //数据更新
}
游戏设计
空地 0
墙 1
箱子 2
人物 3
目的地 4
人可以占在目的地上 3+4-->7
箱子推到目的地 2+4-->6
就这样我们可以用一个二维数组来表示地图
int map[6][12] = { //加载地图资源
0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1,
1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1,
1, 0, 0, 0, 1, 1, 1, 1, 2, 2, 0, 1,
1, 0, 0, 3, 6, 4, 4, 4, 2, 0, 0, 1,
1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0
};
利用图形库里面的贴图函数putimage来完成游戏绘制
![325c54683b0d5a19a4d2f28f767533ae.png](https://i-blog.csdnimg.cn/blog_migrate/0ba38e11343c24b1d13f1e821f60b0f7.jpeg)
第二步
用到的知识点
1.二维数组
2.循环
3.条件判断
4.getch()的使用
5.kbhit()的功能
6.上下左右键的ASCII值
7.MessageBox()的使用
知识点详解
1、getch()和getchar()的区别
getchar()在用户输入一个字符后需要按Enter键才会获取那个字符
getch()在用户键盘抬起的时候就获取那个键盘的ASCII值
写游戏时我们不需要等待确认操作,所以写游戏的时候用getch()
2、kbhit()的功能
检查键盘是否按下,按下返回true,否则返回false.
3、上下左右的ASCII码
72:上
80:下
75: 左
77: 右
4、MessageBox()的使用
消息盒子,弹出一个对话框,这是windows里面的一个API函数,当你赢或输之后弹出一个对话框,达到游戏胜利和失败的效果。
游戏设计
以向右为例
小人右侧是空地
![414d82f3d74c90b183355b65e74fd36b.png](https://i-blog.csdnimg.cn/blog_migrate/2650c5ef6e59fe27766dc26076d0ee27.jpeg)
小人右侧是目的地
![eefed0ca01fca2160ff8e1a2a4dce393.png](https://i-blog.csdnimg.cn/blog_migrate/0c9e61fb77ff74800f4c953c30649647.jpeg)
小人直接过去
小人右侧箱子的旁边是空地
![bcbc9c9db3347a0605b59f7296715c71.png](https://i-blog.csdnimg.cn/blog_migrate/06130240b41494db3962b2fc055cece8.jpeg)
小人箱子的旁边是目的地
![5ee9302f71f32878fd7f479be691dbc2.png](https://i-blog.csdnimg.cn/blog_migrate/d9c8c4649989aaea1e646bb422621ff5.jpeg)
小人将箱子推过去
判断输赢
赢
地图中没有黄色的箱子
![518bd2a4a036690ee5469ea8ff4bfb09.png](https://i-blog.csdnimg.cn/blog_migrate/b36c56bf971f6da57a8eb43bb3559b12.jpeg)
输
箱子相邻的两个或两个方向以上有障碍物(箱子或墙)
![fc54c5034c7501c17d436d300b01d620.png](https://i-blog.csdnimg.cn/blog_migrate/d3d9132025bac7a3b2712446bedfaf3b.jpeg)
喜欢的点赞加关注哦