优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

基于VC的推箱子游戏设计

以下是资料介绍,如需要完整的请充值下载.
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:需要加入死局判断功能(无论如何操作都无法完成游戏时,给予提示)