汇编语言课程设计

汇编语言课程设计

ID:12881880

大小:33.54 KB

页数:25页

时间:2018-07-19

汇编语言课程设计_第1页
汇编语言课程设计_第2页
汇编语言课程设计_第3页
汇编语言课程设计_第4页
汇编语言课程设计_第5页
资源描述:

《汇编语言课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、汇编语言课程设计一、题目及要求《捉老鼠游戏》,在限定的一分钟时间内用鼠标打击界面上出现的老鼠,击中后得一分,否则可以继续击中。游戏结束弹出对话框,显示游戏得分和击中率,并询问是否要继续游戏。二、程序设计分析程序采用win32模式下的汇编语言编写,开发环境是masm32,UltraEdit,RadASM。程序有两个窗口,一个是游戏主界面,采用消息循环完成填充背景和绘制老鼠,并通过接收鼠标消息检测老鼠是否被打中。程序采用两个计时器,一个使老鼠出现的速度加快,一个控制游戏时间,时间用完退出游戏并显示结果。第二个窗体是一个对话框

2、,显示得分信息和游戏时间,同时可以选择游戏开始还是结束。游戏的开始与停止采用了一个标志变量控制。变量为0表示未开始,变量为1表示正在进行。游戏运行参数保存在全局变量中。游戏开始,将背景画在窗口上,然后根据老鼠出现的相对坐标换算成像素坐标,在相应位置画出老鼠的图像。老鼠的状态用一个变量标识,变量为0,没有打中,画上正常的老鼠,打中了画上被打死的老鼠。游戏只在需要更新的地方才重画窗口,包括窗口叠加时造成的系统的WM_PAINT消息时,计时器控制新的地鼠出现的时候,用户击中地鼠的时候,以及更新时间的时候。三、程序流程图主函数_

3、WinMain窗口回调函数_ProcWinMain消息循环WM_CLOSEWM_CREATEWM_TIMERWM_LBUTTONUPWM_LBUTTONDOWN绘图消息WM_PAINTGameends二、核心模块功能介绍_ProcWinMain是窗口的回调函数,用于处理消息。在各消息处理中完成游戏执行。_CreateBack1.WM_CREATE消息:处理游戏的初始化操作初始化hWinMain=hWnd__CreateMouseWM_CREATECall_Init初始化游戏参数SetTimerSetTimerCall_S

4、howDialog显示游戏控制对话框2.WM_PAINT消息,绘制图形,实现游戏画面BeginPaint开始绘图BitBlt,翻转绘图缓冲区WM_PAINTEndPaint,绘图过程结束3.WM_LBUTTONDOWN,鼠标单击事件,分两部分进行:第一改变光标变成打下去的图案;第二判断是否打中老鼠,重绘画面,发出声音。SetClassLong改变光标WM_LBUTTONDOWN_CheckHit判断是否打中老鼠4.WM_LBUTTONUP,将窗口光标恢复打老鼠之前的状态:WM_CLOSE消息:退出游戏消息,主要进行的设置

5、就是释放各种资源SetClassLong恢复光标WM_LBUTTONUP5.WM_TIMER,定时器消息,根据定时器的标识ID来进行不同的操作。如果是计时定时器,判断时间是否用尽,是则结束游戏,否则游戏时间减1S,并重绘屏幕;如果是鼠标定时器,随机生成老鼠鼠标,在指定位置画出老鼠,并将时间剪短20.IDT_SHOWMWM_TIMERWM_CLOSE消息:退出游戏消息,主要进行的设置就是释放各种资源IDT_TIMER6.WM_CLOSE消息:退出游戏消息,释放各种资源。_DeleteBack释放背景资源_DeleteMou

6、se释放老鼠资源WM_CLOSEWM_CLOSE消息:退出游戏消息,主要进行的设置就是释放各种资源DestroyWindow,销毁窗口PostQuitMessage退出程序五、程序运行步骤双击EXE文件,弹出对话框,此时游戏状态为空,得分为0。选择“开始游戏(S)”,进入游戏界面,通过鼠标来打老鼠,打中一个老鼠发出惨叫,并被打死,得一分。若没有打中,可以继续点击敲打。老鼠出现的速度会越来越快。游戏时间为1分钟,1分钟后退出游戏界面,并显示得分和命中率,玩家可以继续选择进行游戏或者退出游戏。二、设计过程遇到的主要技术难点因

7、为这是我第一次接触windows下的编程,跟汇编思想,语法结构很不一样,周一周二网上找了本《Windows环境下32位汇编语言程序设计》仔细阅读,并找了周金辉学长之前编写的打地鼠游戏进行学习参考。周二下午开始编写,一开始错误很多,因为我不知道调用的函数大小写必须正确,所以错了一大堆。而且调用invoke函数时需要写明函数的参数,一开始我没意识到后来慢慢调试,对照着《windowsAPI》找出适用的函数并正确写出参数。这样才慢慢把代码写出来。另外一个就是图片的问题。导入背景图片到资源管理器,并在界面上画上背景没有问题。但是

8、画老鼠图片时,我以为和C++一样,直接把位图加载到内存,然后调用画图函数复制到窗口上就可以了,但是运行时一直是白色的边框,而不是背景的颜色。我又仔细看了一下书,原来这涉及到块传送操作,需要进行像素的运算。于是我按照书上的思路,修改了代码:先用PatBlt函数填充整个图片,然后用PhotoshopCS5把老鼠的图片重新

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。