软件工程毕业设计-c语言游戏设计.doc
上传人:小长****6淑 上传时间:2024-09-12 格式:DOC 页数:20 大小:2.3MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

软件工程毕业设计-c语言游戏设计.doc

软件工程毕业设计-c语言游戏设计.doc

预览

免费试读已结束,剩余 10 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

PAGE\*MERGEFORMAT201:C语言游戏设计1.1:课程设计目标C语言编写一款打飞机游戏,掌握函数的使用和编程的整体思路。1.2:整体设计思路总体设想:运行游戏时显示游戏的界面,允许用户选择个性化设置,A、D、W分别控制飞机的左右移动和发射子弹,不同的敌机飞行和攻击,并不时伴有奖励。游行运行时播放音效,同时记录飞机的生命和得分,达到一定的分数进入下一关。需要构建的函数:位图调用模块、界面输出函数、主菜单函数、设置函数、速度选择函数、游戏控制函数、敌机移动函数、子弹移动函数、boss函数、计时函数。1.3:需调用的头文件:include<stdio.h>//常规库头文件include<conio.h>//控制台输入输出流头文件include<stdlib.h>//系统函数头文件include<time.h>//时间函数头文件include<windows.h>//windows函数库include<mmsystem.h>//导入声音头文件pragmacomment(lib,"winmm.lib")//导入声音头文件库1.4:游戏过程模拟:启动游戏用户个性化设置恭喜进入下一关Gameover判断飞机生命记录飞机飞行时间和生命判断输入指令Menu菜单函数Mpovepal1敌弹Movepal敌机函数Boss函数Bmp位图调用Set设置函数Update计时函数Delay游控函数Indelay速控函数Print界面输出Movebul子弹速度飞机的移动,子弹的发射,音乐的播放,信息的记录1.5:显示效果如下图所示:初始设置界面:游戏界面2算法实现2.1需要了解的知识点:Main函数和menu函数编写比较顺利,在bmp函数中遇到如何显示窗口和调用图片的问题,看了一些例子和网上的资料,逐渐掌握了一下知识点:eq\o\ac(○,1)设备上下文:设备,显示器,打印机,数码相机,扫描仪这些类似的设备,上下文,就是上面设备的相关信息,比如屏幕分辨率等eq\o\ac(○,2)HANDLE通用句柄,实际上是一个指向指针的指针,在Windows操作系统中,内存操作器经常移动对象,来满足各种程序的内存需要,为了解决寻找对象问题,内存管理器开辟出一块专门的内存储存空间,把移动后的地址存储在该空间,这样就可以通过该地址间接寻找到对象。eq\o\ac(○,3)HDC设备描述句柄,实现对窗口操作区域的GDI(图形设备接口,负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出)操作,如画线、写文本、绘画制图等。eq\o\ac(○,4)BITMAP用于处理有像素数据定义的图像的对象。eq\o\ac(○,5)GetDC(0)检索特定的客户区域或整个屏幕的宣示设备上下文环境的句柄,以后可以使用该句柄在设备上下文环境中绘图。eq\o\ac(○,6)LoadImage装载图标、光标或位图。HANDLELoadImage(HINSTANCEhinst,LPCTSTRlpszName,UINTuType,intcxDesired,intCyDesired,UINTfuLoad),hinst处理包含被撞在图像模块的实例,装载oem图像时参数设为0;name指向装载图像资源的名称;type指定被装备图像类型cxdesired和cyDesired指定图标的宽度和高度,如果参数为0,则使用目前资源的高度。Fuload-LR_LOADFROMFILE:根据参数lpszName的值装载图像。若标记未被给定,lpszName的值为资源名称。eq\o\ac(○,7)CreateCompatibleDC该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。通过GetDc()获取的HDC直接与相关设备沟通,而本函数创建的DC,则是与内存中的一个表面相关联。eq\o\ac(○,8)SelectObject计算机编程语言函数,该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。eq\o\ac(○,9)GetObject函数功能:该函数得到指定图形对象的信息,根据图形对象,函数把填满的或结构,或表项(用于逻辑调色板)数目放入一个指定的缓冲区。eq\o\ac(○,10)BitBlt该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境.eq\o\ac(○,11)ReleaseDC函数释放HYPERLINK"http://baike.baid