推箱子程序的设计与报告.docx

上传人:b****3 文档编号:2148033 上传时间:2022-10-27 格式:DOCX 页数:26 大小:111.51KB
下载 相关 举报
推箱子程序的设计与报告.docx_第1页
第1页 / 共26页
推箱子程序的设计与报告.docx_第2页
第2页 / 共26页
推箱子程序的设计与报告.docx_第3页
第3页 / 共26页
推箱子程序的设计与报告.docx_第4页
第4页 / 共26页
推箱子程序的设计与报告.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

推箱子程序的设计与报告.docx

《推箱子程序的设计与报告.docx》由会员分享,可在线阅读,更多相关《推箱子程序的设计与报告.docx(26页珍藏版)》请在冰豆网上搜索。

推箱子程序的设计与报告.docx

推箱子程序的设计与报告

设计容:

推箱子

黄庭

班级:

电信1101

学号:

1107050123

 

一.引言

二.需求分析与系统设计

三.开发技术

四.程序中的主要模块

五.心得体会

六.程序全文

1.引言

在实际编写程序的过程中,产生的一些疑惑与不解,在同学和老师的帮助下圆满解决,对于老师和同学们的帮助,在此我表示衷心的感。

因为一开始构架的问题造成了一些功能的不能实现。

经多方努力仍不能解决,留下遗憾,希望随着日后能力的提高能解决今天留下的问题。

二.需求分析与系统设计

2.1设计目的

通过本学期对游戏程序的研究,我们掌握了运用win32来制作游戏的技术,虽然不娴熟还有待提高,但是一些技术含量较低的小游戏还是很容易让我们掌握的。

此次游戏程序设计的目的,主要是通过win32来制作游戏来更好的掌握编程语言。

通过win32这个平台,熟习在制作游戏方面所需要的技巧,将自己的游戏尽可能多的运用所学到的技术,并且将在课程上面学到的知识付诸于实践,并从实际操作中,找出自己的不足之处进行弥补。

每一次的课程设计,都是一次小小的软件工程,所以需要我们用百分百认真的态度来对待。

对于小一点的程序,我们一个人足以应付,但是这并不是说我们可以单独一个人为所欲为,其实质应该是通过课程设计来培养自己独立自主的能力。

而对于那些相对于麻烦的程序,便需要我们的协作,这样对我们以后进入企业公司发展打下了更多的基础。

2.2设计要求

这次课程设计的要求并不像以往那么紧,老师让给了我们充足的时间来制作游戏,虽然是计划做一款较为大众的经典游戏,并且能力有限,但还是对游戏做出了较高的期望,对于功能做出了较多的设想。

例如,背景音乐的播放,时间的显示,自动切换关卡,难度的选择等。

2.3界面设计

 

图2.3.1进入后的主界面

 

图2.3.2素材图片集合

这个程序是一个益智类的游戏,是一个单机游戏,人物通过推动箱子到达目的地以在游戏中取胜,同一时刻只能有一位玩家进行游戏。

 

图2.3.4英雄榜

图2.3.5关于游戏

 

图2.3.3选择关卡截图

 

2.4游戏流程

系统流程图:

 

游戏开局出现如图1,然后进行难度的选择,再是关卡的选择,然后就可以游戏了,游戏完成之后会自动切换下一关,游戏者可手动选择结束游戏。

三.开发技术

3.1Win32API简介

Win32API即为Microsoft32位平台的应用程序编程接口(ApplicationProgrammingInterface)。

所有在Win32平台上运行的应用程序都可以调用这些函数。

  使用Win32API,应用程序可以充分挖掘Windows的32位操作系统的潜力。

Mircrosoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。

使用Win32API不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有的功能和属性。

  在具体编程时,程序实现方式的差异依赖于相应平台的底层功能的不同。

最显著的差异是某些函数只能在更强大的平台上实现其功能。

例如,安全函数只能在WindowsNT操作系统下使用。

另外一些主要差别就是系统限制,比如值的围约束,或函数可管理的项目个数等等。

3.2Win32API函数分类

标准Win32API函数可以分为以下几类:

  

1、窗口管理  

2、窗口通用控制

3、Shell特性 

4、图形设备接口 

5、系统服务 

6、国际特性 

7、网络服务

四.程序中的主要模块

4.1函数原型的一些定义

LRESULTCALLBACKWindowProc(

HWNDhwnd,//handletowindow

UINTuMsg,//messageidentifier

WPARAMwParam,//firstmessageparameter

LPARAMlParam//secondmessageparameter

);//窗口过程函数原型

BOOLInitWindowsClass(HINSTANCEhInstance);//初始化窗口类

BOOLInitWindows(HINSTANCEhInstance,intnCmdShow);//初始化窗口

BOOLCALLBACKDlgProc(HWNDhdlg,UINTmessage,WPARAMwParam,LPARAMlParam);//对话框过程函数

voidShow_Image(HBITMAPbmap,inti,intj);//显示单图片

voidDraw_Map();//作图的函数

voidShow_Map();//显示地图

voidGet_Poision(Poision&poision);//人物在哪里的定位

4.2创建窗口函数

voidmain()

{

PlaySound("E:

\\2.wav",NULL,SND_FILENAME|SND_ASYNC);

}

BOOLInitWindows(HINSTANCEhInstance,intnCmdShow)

{

hWnd=CreateWindow("joe","推箱子",WS_OVERLAPPEDWINDOW,450,200,325,372,NULL,NULL,hInstance,NULL);

if(!

hWnd)

returnFALSE;

SetTimer(hWnd,1,1,NULL);

ShowWindow(hWnd,nCmdShow);

UpdateWindow(hWnd);

hInst=hInstance;

returnTRUE;

}

4.3地图的输出

voidShow_Map()

{

inti,j;

for(i=0;i<10;i++)//1表示墙0表示通路2表示箱子3表示人4表示目的地

for(j=0;j<10;j++)

if(Map[i][j]==1)

Show_Image(hBm_wall,32*j,32*i);

elseif(Map[i][j]==2)

Show_Image(hBm_box,32*j,32*i);

elseif(Map[i][j]==3)

Show_Image(hBm_people,32*j,32*i);

elseif(Map[i][j]==4)

Show_Image(hBm_dirtion,32*j,32*i);

elseif(Map[i][j]==0)

Show_Image(hBm_floor,32*j,32*i);

}

4.4人物的定位

voidGet_Poision(Poision&poision)

{

inti=0,j=0;

boolflag=FALSE;

poision.Hang=0,poision.Lie=0;

for(i=0;i<10;i++)

{

for(j=0;j<10;j++)

{

if(Map[i][j]==3)

{

poision.Hang=i;

poision.Lie=j;

flag=TRUE;

break;

}

}

if(flag==TRUE)

break;

}

}

4.5地图的编写

intMap4[10][10]={1,1,1,1,1,0,0,0,0,0,//1表示墙0表示通路2表示箱子3表示人4表示目的地

1,3,0,0,1,0,0,0,0,0,

1,0,2,2,1,0,0,1,1,1,

1,0,2,0,1,0,0,1,4,1,

1,1,1,0,1,1,1,1,4,1,

0,1,1,0,0,0,0,0,4,1,

0,1,0,0,0,1,0,0,0,1,

0,1,0,0,0,1,1,1,1,1,

0,1,0,0,0,1,0,0,0,1,

0,1,1,1,1,1,0,0,0,0};

intMap5[10][10]={1,1,1,1,1,1,1,1,1,1,//1表示墙0表示通路2表示箱子3表示人4表示目的地

1,0,0,0,1,0,0,0,0,1,

1,0,3,0,1,4,0,0,4,1,

1,0,2,0,1,0,0,1,0,1,

1,0,1,0,0,0,0,0,0,1,

1,0,0,2,0,0,0,0,0,1,

1,0,0,0,1,0,0,0,0,1,

1,0,0,0,0,0,0,0,0,1,

1,0,0,0,0,0,0,0,0,1,

1,1,1,1,1,1,1,1,1,1};

intMap1[10][10]={1,1,1,1,1,1,1,1,1,1,//1表示墙0表示通路2表示箱子3表示人4表示目的地

1,0,0,0,1,0,0,0,0,1,

1,0,3,0,1,4,0,0,4,1,

1,0,2,0,1,0,0,1,0,1,

1,0,1,0,0,0,0,0,0,1,

1,0,0,2,0,0,0,0,0,1,

1,0,0,0,1,0,0,0,0,1,

1,0,0,0,0,0,0,0,0,1,

1,0,0,0,0,0,0,0,0,1,

1,1,1,1,1,1,1,1,1,1};

intMap2[10][10]={1,1,1,1,1,1,1,1,1,1,//1表示墙0表示通路2表示箱子3表示人4表示目的地

1,0,0,0,1,0,0,0,0,1,

1,0,3,0,0,0,0,0,0,1,

1,0,2,0,1,1,0,0,0,1,

1,0,0,0,4,1,0,0,0,1,

1,0,0,2,1,1,0,0,0,1,

1,0,0,0,0,0,1,4,0,1,

1,0,0,0,0,0,0,1,0,1,

1,0,0,0,0,0,0,0,1,1,

1,1,1,1,1,1,1,1,1,1};

intMap3[10][10]={1,1,1,1,1,1,1,1,1,1,//1表示墙0表示通路2表示箱子3表示人4表示目的地

1,0,0,0,1,0,0,0,0,1,

1,0,3,0,0,0,0,2,0,1,

1,0,0,0,0,1,0,0,0,1,

1,0,0,0,1,0,0,0,0,1,

1,0,2,0,0,0,0,0,0,1,

1,0,0,1,0,0,1,4,0,1,

1,0,1,4,0,0,0,1,0,1,

1,1,0,0,0,0,0,0,1,1,

1,1,1,1,1,1,1,1,1,1};

intMap[10][10]={0,1,1,1,1,1,1,1,0,0,//1表示墙0表示通路2表示箱子3表示人4表示目的地

0,1,1,1,1,1,1,1,0,0,

0,1,0,0,0,0,0,1,1,1,

1,1,2,1,1,1,0,0,0,1,

1,0,3,0,2,0,0,2,0,1,

1,0,0,0,1,0,0,0,1,1,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1