c语言推箱子小游戏教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

注意:本文档请用word打开,然后启用编辑模式,直接点击图标就可以查看源代码了

C语言推箱子小游戏

——EGE图形库版

作者DawsonLee

Email dawsonlee1790@

设计思路:

将整个画面分成13*16的矩阵,每个元素对应者一个小矩形。然后用0代表黑格,1代表白墙,2代表蓝格……,这样就有了整幅图像的信息。然后移动就可以想象成,改变矩阵的坐标信息,形成一个新的矩阵,再重绘。这就是推箱子的基本原理。

#define BLACK 0 //黑格:用于填充图像

#define WHITEWALL 1 //白墙:用于阻挡主角移动

#define BLUEWALL 2 //蓝格:用于表示可移动空间

#define BALL 3 //点:用于指定箱子放置位置

#define BOX 4 //箱子:用于表示初始箱子位置

#define REDBOX 5 //变色的箱子:用于表示这个点位置已经放置箱子

#define MAN 6 //主角:用于表示主角位置

#define MANBALL 7 //主角站在点上

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

下面,我就给大家讲解怎么写出推箱子小游戏。

1.编译环境:VS2015

2.要给VS2015安装EGE图形库/p/b12163e5a0b7

3.要参考EGE图形库帮助文档/man/index.htm

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

接下来,我们要把TXT文件的读取矩阵的功能,写在一个readmap()函数中,实现功能的模块化。并加多一项功能,就是查找出,MAN的位置。

源代码.txt

5.接下来我们实现在窗口中,把矩阵信息转变成图像。原理就是,将图片贴在窗口上。

图片资源:pic.zip

(把当中的pic文件夹解压,存放在正确路径中,如果路径不正确会导致窗口中没有图像)

绘制操作的源代码:源代码.txt 实现的效果如图所示:

6.实现图像的绘制以后那我们就应该实现图像的移动了。比方说向右移动

首先将所有的情况列举出来并存入数组table[i][0]中,将改变后的第一个格子信息存在table[i][1]中,第二个格子信息存在table[i][2]中,第三个格子信息存在table[i][3]中。

源代码.txt 然后就可以开始写move()函数,实现MAN的移动。move()函数源代码

源代码.txt 写好move()函数后,我们就可以实现推箱子的功能了。整合后的源代码

7.最后,我们给窗口载入一张完美的北京图片,至此就可以实现完整推箱子小游

源代码.txt

戏了。最后整合的代码就是:

实现效果如下

8.附上整个工程项目的文件/s/1o8poxzc

9.通过学习,您还可以加上诸多功能,比如音乐的播放,用户登陆和地图的绘制等。下面给一个有上述功能的推箱子游戏:/s/1o8EWOBo

相关文档
最新文档