计算机图形学二维弹球实验报告.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机图形学实验报告 实验一、 二维弹球游戏设计 一、实验目的与基本要求: (1)掌握在VS2010或以上版本环境下如何配置OpenGL环境的方法; (2)熟悉OpenGL应用程序基本架构; (3)培养良好的编程习惯和风格,学习撰写实验报告; (4)学习交互式游戏设计; (5)通过小球移动、反弹、击中等功能实现学习二维几何的基本运算; (6)菜单的使用。 二、实验设备(环境)及要求 1. 操作系统:Windows XP 或 Windows 7 2. 编程环境:Microsoft Visual Studio 2010,OpenGL 库函数 3. 界面框架:Win32,MFC,QT选择其中一种 三、实验内容与步骤 实验分为以下几个步骤: 绘制游戏界面和基础物体(小球、挡板) 实现小球的发射及方向的控制 实现小球与墙壁和挡板、挡板与墙壁的碰撞算法 实现键盘控制的挡板移动 菜单游戏介绍及难度等级的选择 附加功能: 砖块的绘制和与小球的碰撞 砖块的消失 文字标识的游戏的输赢 增加了小球的生命数以及血量条 增加了背景图案的变化和背景颜色的切换 实现过程说明及成果展示: 1.绘制游戏界面和基础物体(小球、挡板) 游戏界面的绘制使用画面单位的长和宽与画面比例相乘得到 小球的绘制和挡板的绘制函数为 运用了绘制小球 实现小球的发射和方向控制 小球的初始方向设置为向量(1,1)的方向,其x轴和y轴的方向分别用数组分开存储: ballDir[0]表示x轴,ballDir[1]表示y轴 实现小球与墙壁和挡板、挡板与墙壁的碰撞算法 小球与墙壁的碰撞和挡板相似,以挡板为例: 小球的坐标处设置为球心坐标,故其与挡板的碰撞位置判断时需要加上小球的半径 当小球与挡板的上部碰撞时: 小球位置应在挡板的左右横坐标之间, 当 小球球心位置 + 小球半径 挡板上沿 并且 小球位置 挡板下沿(保证球不会穿过挡板) 时, 小球的则不能继续穿过挡板, (为了实现小球镜面反射式的碰撞) 则小球的水平速度不变,竖直速度反向,实现代码如下: 对比以上方式,小球与挡板侧面发生碰撞时,只需小球的竖直速度不变,水平速度反向即可。小球与墙壁的碰撞方式与小球与挡板的类似。 实现键盘控制的挡板移动 挡板的方向设置为三个,0为静止,1为向右,-1为向左,分别用A和D控制左右: 菜单游戏介绍及难度等级的选择 在菜单中,实现了游戏说明,以及难度等级的选择,实现结果如下图所示: 附加功能的实现: 砖块的绘制、与小球的碰撞和砖块的消失 砖块的存储运用了数组,存储了砖块的四个顶点坐标,并利用循环画出,对于砖块的碰撞与前面的小球与挡板的碰撞判断方式相似,这里就不再复述了,对于砖块的消失,运用了一个的来进行标识,小球每次与砖块发生碰撞,则变为true,绘制时此砖块就不再画出,具体实现代码如下: 显示结果如下: 画面背景的五角星装饰,以及运用五角星的消隐来显示生命值的剩余 五角星的绘制也是运用了数组存储,其消隐运用了changecolor每次加一定大小的值来改变五角星的颜色,从而在生命值耗尽时,五角星颜色变成背景颜色实现五角星的消失,实现代码如下: 文字标识的游戏的输赢 在游戏开始前,画面显示为ready,当生命值耗尽时,显示为lose;当砖块打完,显示为win,实现结果如下: 增加了小球的生命数以及血量条 利用循环,小球每碰到地面一次,则血条长度减去一定值,实现代码如下: 具体显示结果如下: 增加了背景图案的变化和背景颜色的切换 五角星的颜色会随着生命值的减少而逐渐褪去,生命耗尽时五角星会消失,实现方式上面已述: 背景颜色的切换运用了,实现效果如下: 总结与体会: 弹球游戏的开发使我巩固了计算机图形学的绘制,变换等方面的知识,在这过程中之自学了文字的显示,小球的碰撞判断虽然制作过程比较曲折,但是最后完成了还是很开心的,自己的代码能力也得到了锻炼。

文档评论(0)

151****0104 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档