基于VC的推箱子游戏设计
以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
资料介绍:
内 容 摘 要
经典的推箱子是一个来自日本的古老游戏,目的是在训练你的逻辑思考能力。在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道,合理安排移动的次序和位置,才能顺利的完成任务。
本系统是一个基于MFC的单文档程序,具备一般推箱子游戏的基本功能,而且加入了地图编辑功能,可以让用户自己编辑地图并且在自己编辑的地图中游戏,大大增加了游戏的可玩性。系统还提供了简单的死局判断,当用户无论如何都无法完成该局时,弹出提示框,提示用户已经是死局。
利用VC6.0开发工具来开发这个系统。使用了MFC和GDI来绘制图像,使界面更加美观,游戏更加容易上手。
关键词
栈;队列;vc6.0
3.1 系统总体设计
?????? 基于MFC的单文档窗口,响应键盘按键消息来移动游戏中人物并且实时绘制到界面。支持地图编辑,并保存到info文件中。
3.2 系统概要设计3.2.1 界面
?????? 打开vc6.0,新建一个项目。选择MFC AppWizard(exe),然后选择基于单文档的窗口。编译器会自动生成一个单文档的窗口程序。这个就是游戏的主界面。
3.2.2 Sokoban类
?????? 编写一个Sokoban类。所有的游戏操作都封装在这个类里面。可以理解为游戏对象。而主界面是游戏对象的载体。一个推箱子游戏,需要有几个基本的功能:绘制游戏区域、响应键盘消息来改变游戏界面、更改地图(过关了)、编辑地图后添加新地图。
3.2.2.1 绘制游戏区域
?????? 绘制游戏区域还应该细分为绘制背景部分、绘制墙、绘制目标地点、绘制人物、绘制箱子、绘制已经放在目标地点的箱子、绘制通道、绘制人物在目标地点上。以上情况每一种都应该单独编写一个函数。
3.2.2.2 响应键盘消息
?????? 推箱子游戏只需要响应方向键上、下、左、右。就可以了。如果有兴趣,还可以响应一些快捷键。比如:r键可以重新开始当前游戏等
3.2.2.3 更改地图(过关了)
?????? 当游戏完成时,只需要重新加载下一个地图就可以了。
3.2.2.4 添加新地图
?????? 当添加新地图成功后,需要把添加地图成功的消息传给Sokoban类,然后Sokoban类将内部的地图总数计数加1,这样就完成了动态添加新地图功能。
3.2.3 MapEdit类
?????? MapEdit类是一个地图编辑类。和Sokoban类比较相似。因为地图编辑也是可视的,所以MapEdit类也需要绘制游戏区域,还需要保存当前绘制的地图。
3.2.3.1 绘制游戏区域
绘制游戏区域还应该细分为绘制背景部分、绘制墙、绘制目标地点、绘制人物、绘制箱子、绘制已经放在目标地点的箱子、绘制通道、绘制人物在目标地点上。以上情况每一种都应该单独编写一个函数。
3.2.3.2 保存当前绘制的地图
?????? 将有用绘制的地图保存到info文件中。如果保存成功,要把消息发送给Sokoban类,让其内部的地图总数计数加1,这样就完成了动态添加新地图功能。
3.4设计要求1:具备一般推箱子游戏的基本功能???????
2:需要加入地图编辑器功能?????????
3:需要加入死局判断功能(无论如何操作都无法完成游戏时,给予提示)