C语言推箱子小游戏教程
- 48 mins 本教程是我在2016年11月22日编写的,今天在我的博客上重新发布
设计思路
将整个画面分成13*16的矩阵,每个元素对应者一个小矩形。然后用0代表黑格,1代表白墙,2代表蓝格……,这样就有了整幅图像的信息。然后移动就可以想象成,改变矩阵的坐标信息,形成一个新的矩阵,再重绘。这就是推箱子的基本原理。
步骤
Tip:
- 您也可以自行百度或者google Visual Studio Community 2015的其它下载途径
- 您也可以尝试使用Visual Studio其它版本,但有可能会出现未知问题
3. 要参考EGE图形库帮助文档
Tip:如果链接失效,请自行百度或者google”EGE图形库帮助文档”
4. 刚才我们说到,图像的背后对应着一个矩阵,我们可以考虑将矩阵的信息存储在一个MAP.txt文件中,在程序运行时读取。下面我来介绍,在文件中读取一个矩阵。
首先我们得有一个TXT文件:MAP.txt
(一定确保路径放置正确),它存储着这样一个13*16
的矩阵
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0
0 0 0 1 2 2 2 2 2 2 2 2 1 0 0 0
0 0 0 1 2 2 2 2 2 2 2 2 1 0 0 0
0 0 0 1 2 6 2 4 2 3 2 2 1 0 0 0
0 0 0 1 2 2 2 2 2 2 2 2 1 0 0 0
0 0 0 1 2 2 2 2 2 2 2 2 1 0 0 0
0 0 0 1 2 2 2 2 2 2 2 2 1 0 0 0
0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
文本文件中的矩阵读取操作源代码:
接下我们要把TXT文件的读取矩阵的功能,写在一个readmap()函数中,实现功能的模块化。并加多一项功能,就是查找出,MAN的位置。
5. 接下来我们实现在窗口中,把矩阵信息转变成图像。原理就是,将图片贴在窗口上。
- 图片资源pic.zip(把当中的pic文件夹解压,存放在正确路径中,如果路径不正确会导致窗口中没有图像)
实现的效果如图所示:
绘制操作的源代码:
6. 实现图像的绘制以后那我们就应该实现图像的移动了。
首先将所有的情况列举出来并存入数组table[i][0]
中,将改变后的第一个格子信息存在table[i][1]
中,第二个格子信息存在table[i][2]
中,第三个格子信息存在table[i][3]
中。
然后就可以开始写move()
函数,实现MAN
的移动。move()
函数源代码
写好move()
函数后,我们就可以实现推箱子的功能了。整合后的源代码:
7. 最后,我们给窗口载入一张完美的背景图片,至此就可以实现完整推箱子小游戏了。
实际效果图:
最后整合的代码就是:
8. 附上整个工程项目的文件
9. 通过学习,您还可以加上诸多功能,比如音乐的播放,用户登陆和地图的绘制等。下面给一个有上述功能的推箱子游戏
- 源码版本
- Release版本(可执行文件 .exe)
项目展示视频:
Dawson Lee
A man who loves to watch Korean dramas