步遥情感网
您的当前位置:首页201405010.doc

201405010.doc

来源:步遥情感网
2015~2016

《Windows程序设计》期末考查

设计、实现、使用文档

姓名: 学号: 201405010 班级: 计算机141 指导教师: 杜 日期: 2016/6/12

考查题目: 丛林探险

一、题目要求(程序背景、意义、相关功能介绍) 程序背景:考察Windows面向程序化设计;

意义:可以锻炼学生能力,激发学生学习的乐趣;

相关功能:通过鼠标,键盘完成一些功能,产生;一些游戏功能; 二、程序的设计(如:总体设计结构,用到的数据结构、类图等) 菜单设计:开始游戏,选择关卡,放烟花; 城镇设计:可以走路演示技能;

BUFF售货机设计:可以买复活药水,无限购买; 选择地图设计,鼠标选择地图进入相关地图; 上下左右键控制人物移动;

A,S,D,F,Q,W,E各种小技能,对怪物造成伤害; R大招,40秒冷却,30秒持续,对野怪双倍伤害;

兔子精灵:随机移动,夏娜靠近时会进入防御状态,夏娜近身有概率对她发动攻击;

BOSS火龙:原定站在,人物近身会攻击,有两种技能,死后会掉落装备 任务完成放烟花;

有用到双缓冲,游戏循环等

三、程序的实现过程(用文字或流程图说明完成程序的步骤,可附些关键代码)

利用BitBlt完成对背景图的插入

利用TransparentBlt完成对人物的插入,并且通过相关变量控制人物运动 利用srand(time(0)),rand(),来控制怪物的随机运动,

利用case WM_LBUTTONDOWN:case WM_KEYDOWN: case WM_CHAR:响应键盘鼠标控制人物怪物的相关运动 利用TextOut进行文字输出 利用RoundRect设计血条

利用PlaySound()播放背景音乐

游戏循环关键代码:GetMessage(&Msg,NULL,NULL,NULL); while( Msg.message!=WM_QUIT ) {

if( PeekMessage( &Msg, NULL, 0,0 ,PM_REMOVE) ) {

TranslateMessage( &Msg ); DispatchMessage( &Msg ); }

else { tNow = GetTickCount(); if(tNow-tPre >= 100) //当此次循环运行与上次绘图时间相差0.1秒时再进行重绘操作 mypaint(Hdc); }

}

逻辑处理不做一一分析

四、程序的运行结果(可通过文字和截图说明)

游戏开始界面

城镇界面

商店界面

选择地图界面

第一关页面

怪物防御状态

怪物攻击

人物血条

传送门,怪物全部消失后出现

Boss关卡界面

游戏结束界面

人物技能不方便截图,可以游戏看具体效果。 五、总结与心得

这次课程设计所用的时间还是比较多的,虽然磕磕碰碰,但是最终自己做出点东西还是很欣慰的,通过课程设计也学到了不少东西,比如说游戏循环,双缓冲我本来是不会的,在同学的帮助下也用起来了,但是问题还是很多,比如说人物与怪物的碰撞问题,我没有去解决,而且不会设计小窗口,3D等,以后还需继续努力。

因篇幅问题不能全部显示,请点此查看更多更全内容