推箱子游戏报告书_第1页
推箱子游戏报告书_第2页
推箱子游戏报告书_第3页
推箱子游戏报告书_第4页
推箱子游戏报告书_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、XW1 lj.aEOjDft VlitLal ElajCir KHM |4ebKaixl Ifa-raj jr x推箱子游戏设计报告书一、项目背景本实训要求对“推箱子游戏”进行分析、设计。本实训对实训项目已经作了较为详细的分析及相关知识讲解,通过实训,促使专业技能得到综合训练,让我们了解软件开发基本技术和工作过程。同时,本实训中了解图形界面设计基本技术。通过本系统的开发, 要了解软件开发的整个过程,掌握软件开发的基本方法,提前培养从事软件行业应具备的基本素质和能力,为以后的学习作一个铺垫。二、设计目的本课程的课程设计实际是重在提升学生对程序的理解力和游戏界面的设计能力,进行的一次全面的综合训练

2、,其目的在于加深动手能力以及对游戏设计思想的理解,掌握运用VB开发应用程序的基本方法及基本技巧。三、游戏介绍本游戏设计了关卡设计器对有难度进行设计,同时用方向键控制小人的移动,空格重新开始,回车选择下一关,page up上一关,page down下一关,Esc退回。小人移动来推箱子使 箱子到达指定位置,如果箱子全部到达指定位置就表示过关3.1界面设计3.1.1界面设计原则:1用户帮助2向导3快捷键4鼠标与键盘对应5布局合理化6显示信息一致性7界面一致性8美观与协调性9合理性10规范性11易用性12 一般交互13数据输入本游戏是一个简单游戏所以只涉及一些简单的界面设计原则.3.2用尸界面又称人机

3、界面,实现用户与计算机之间的通信,以控制计算机或进行用户与计算机之间的数据传送的系统部件。GUI :即图形用户界面,一种可视化的用户界面,它使用图形界面代替正文界面。本系统坚持图形用户界面(GUI )设计原则,界面直观、对用户透明。用户接触软件后 对界面上对应的功能一目了然、不需要多少培训就可以方便地使用本应用系统。- FwCtrlTfTiECLDqtzL s耳叩迁:亦;x绘fc?ll卜 F1S退二.啟砂 廨裁ETliT舌舟録 IT虚咋呵任.330编程设计原则:1、排版2、注释3、标识符命名4、可读性5、变量与结构6、函数与过程7、可测性8、程序效率9、质量保证10、代码编辑、编译与审查11、

4、代码测试与维护由于本游戏是小游戏所以只需注重1、排版2、注释3、标识符命名4、可读性5、变量与结构6、函数与过程等方面就可以其余原则可忽略3.3.1 API函数声明Private Declare Function BitBIt Lib gdi32 (ByVai hDestDC As Long, ByVai X As Long,ByVai Y As Lon g, ByVai nWidth As Long, ByVai nH eight As Lon g, ByVai hSrcDC AsLong,_ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRo

5、p As Long) As Long3.3.2 全局常量Private Const MAXX As Integer = 20Private Const MAXY As Integer = 15Private Const SIZE As Integer = 302Private Const D_LEFT As Integer = 1Private Const D_RIGHT As Integer = 0Private Const D_UP As Integer = 2Private Const D_DOWN As Integer = 3Private Const B_GROUND As Inte

6、ger = &H0As Integer = &H1As Integer = &H2As Integer = &H4As Integer = &H8Private Const B_DESTPrivate Const B_BOXPrivate Const B_WALLPrivate Const B_BACK3.3.3 全局变量Private Map(MAXX, MAXY) As IntegerPrivate ScenesCount As Integer, CurrScene As IntegerPrivate BoxCount As Integer, Completed As IntegerPri

7、vate X As Integer, Y As Integer, Dir As IntegerPrivate FileNum As IntegerPrivate MapLoading As BooleanPrivate Playing As Boolean3.3.4 游戏开始/ 定义子函数 , 载入游戏 .Private Sub Form_Load()Playing = FalseMapLoading = FalseInitGameEnd Sub3.3.5 游戏初始化size/FileNum 代表工作区号 ,用 FreeFile 函数返回 ,载入游戏 . 返回工作区文件尾号除以 Private

8、 Sub InitGame()FileNum = FreeFileOpen Map.dat For Binary Access Read As FileNumScenesCount = LOF(FileNum) / SIZEIf ScenesCount = 0 ThenMsgBox 没有可用的地图文件或文件格式出错, & vbCrLf & _ 请把可用的 Map.dat 文件和游戏放在同一目录。 , _ vbOKOnly Or vbExclamation, 文件读取错误 EndEnd IfLoadMap 1Playing = TrueEnd Sub3.3.6 读取关卡数据/ 调用函数定义坐标

9、,对空间位置操作读出 Data 数据Private Function LoadMap(Scene As Integer) As BooleanIf MapLoading Then Exit FunctionIf Scene ScenesCount ThenLoadMap = FalseExit FunctionEnd IfMapLoading = TrueCurrScene = SceneCaption = 推箱子 第 & CurrScene & 关 BoxCount = 0: Completed = 0Dir = 0Dim Data As ByteGet FileNum, (CurrScen

10、e - 1) * SIZE + 1, DataX = DataGet FileNum, , DataY = DataDim i As Long, j As LongFor i = 0 To MAXY - 1For j = 0 To MAXX - 1Get FileNum, , DataMap(j, i) = DataIf Map(j, i) And B_DEST Then BoxCount = BoxCount + 1NextNextDrawMapLoadMap = TrueMapLoading = FalseEnd Function3.3.7 选择关卡/LoadMap 调用子过程函数Priv

11、ate Sub SelectMap()Dim Temp As IntegerTemp = Val(l nputBox(请输入关数(1& Trim(Sce nesCou nt) &, 1)lf Temp = 1 And Temp = ScenesCount Then CurrScene = TempLoadMap TempEnd Sub3.3.8 显示整个游戏画面/ 画出游戏界面利用坐标Private Sub DrawMap()Dim i As Long, j As LongFor i = 0 To MAXY - 1For j = 0 To MAXX - 1DrawBox j, i, Map(j

12、, i)NextNextDrawMan X, YpicMain.RefreshEnd Sub3.3.9 显示背景块(包括地面、墙、箱子等)/ 多分支语句显示背景Private Sub DrawBox(ByVal X As lnteger, ByVal Y As lnteger, ByValDim Offset As lntegerSelect Case BoxTypeCase B_BACK), 选择一关BoxType As lnteger)Offset = 0Case B_GROUNDOffset = 1Case B_DESTOffset = 2Case B_BOXOffset = 3Case

13、 B_WALLOffset = 4End SelectBitBlt picMain.hDC, X * 32, Y * 32, 32, 32, picBoxs.hDC, Offset * 32, 0, vbSrcCopy End Sub3.3.10 显示小人Private Sub DrawMan(ByVal X As Integer, ByVal Y As Integer)BitBlt picMain.hDC, X * 32, Y * 32, 32, 32, picMan.hDC, Dir * 32, 32, vbSrcAndBitBlt picMain.hDC, X * 32, Y * 32,

14、 32, 32, picMan.hDC, Dir * 32, 0, vbSrcPaint End Sub3.3.11 游戏操作(按键处理)Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)If Not Playing Then Exit SubSelect Case KeyCodeCase 37ManMove -1, 0Case 38ManMove 0, -1Case 39ManMove 1, 0Case 40ManMove 0, 1Case 32LoadMap CurrSceneCase 33LoadMap CurrS

15、cene - 1Case 34LoadMap CurrScene + 1Case 13SelectMapCase 27Unload MeEnd SelectEnd Sub3.3.12 游戏结束Private Sub Form_Unload(Cancel As Integer)CloseEndEnd Sub3.3.13 小人移动Private Sub ManMove(OffsetX As Integer, OffsetY As Integer)Dim DestX As Integer, DestY As IntegerIf OffsetY = -1 ThenDir = D_UPElseIf Of

16、fsetY = 1 ThenDir = D_DOWNElseIf OffsetX = -1 ThenDir = D_LEFTElseDir = D_RIGHTEnd IfDestX = X + OffsetX: DestY = Y + OffsetYIf DestX = MAXX Or DestY = MAXY Then Exit SubIf Map(DestX, DestY) And B_WALL Or Map(DestX, DestY) And B_BACK Then Exit SubIf Map(DestX, DestY) And B_BOX ThenPush DestX, DestY,

17、 OffsetX, OffsetYElseDrawMan DestX, DestYDrawBox X, Y, Map(X, Y)X = DestX: Y = DestYpicMain.RefreshEnd IfEnd Sub3.3.14 推动箱子Private Sub Push(SourceX As Integer, SourceY As Integer, OffsetX As Integer, OffsetY As Integer)Dim DestX As Integer, DestY As IntegerDestX = SourceX + OffsetX: DestY = SourceY

18、+ OffsetYIf DestX = MAXX Or DestY = MAXY Then Exit SubIf Map(DestX, DestY) And B_WALL Or Map(DestX, DestY) And B_BACK Or _Map(DestX, DestY) And B_BOX Then Exit SubMap(SourceX, SourceY) = Map(SourceX, SourceY) - B_BOXMap(DestX, DestY) = Map(DestX, DestY) + B_BOXDrawBox DestX, DestY, B_BOXDrawBox Sour

19、ceX, SourceY, Map(SourceX, SourceY)DrawMan SourceX, SourceYDrawBox X, Y, Map(X, Y)X = SourceX: Y = SourceYpicMain.RefreshIf Map(SourceX, SourceY) And B_DEST Then Completed = Completed - 1If Map(DestX, DestY) And B_DEST Then Completed = Completed + 1If Completed = BoxCount Then WinEnd Sub3.3.15 过关处理Private Sub Win()If MsgBox(你太聪明了!要继

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论