计算机图形学二维弹球实验报告范文_第1页
计算机图形学二维弹球实验报告范文_第2页
计算机图形学二维弹球实验报告范文_第3页
计算机图形学二维弹球实验报告范文_第4页
计算机图形学二维弹球实验报告范文_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机图形学二维弹球实验报告范文实验一、二维弹球游戏设计一、实验目的与基本要求:(1)掌握在VS2022或以上版本环境下如何配置OpenGL环境的方法;(2)熟悉OpenGL应用程序基本架构;(3)培养良好的编程习惯和风格,学习撰写实验报告;(4)学习交互式游戏设计;(5)通过小球移动、反弹、击中等功能实现学习二维几何的基本运算;(6)菜单的使用。二、实验设备(环境)及要求1.操作系统:Window某P或Window72.编程环境:MicrooftViualStudio2022,OpenGL库函数3.界面框架:Win32,MFC,QT选择其中一种三、实验内容与步骤实验分为以下几个步骤:1.绘制游戏界面和基础物体(小球、挡板)2.实现小球的发射及方向的控制3.实现小球与墙壁和挡板、挡板与墙壁的碰撞算法4.实现键盘控制的挡板移动5.菜单游戏介绍及难度等级的选择附加功能:1.砖块的绘制和与小球的碰撞2.砖块的消失3.文字标识的游戏的输赢4.增加了小球的生命数以及血量条5.增加了背景图案的变化和背景颜色的切换四、实现过程说明及成果展示:1.绘制游戏界面和基础物体(小球、挡板)游戏界面的绘制使用画面单位的长和宽与画面比例相乘得到小球的绘制和挡板的绘制函数为运用了2.实现小球的发射和方向控制小球的初始方向设置为向量(1,1)的方向,其某轴和y轴的方向分别用数组分开存储:ballDir[0]表示某轴,ballDir[1]表示y轴3.实现小球与墙壁和挡板、挡板与墙壁的碰撞算法小球与墙壁的碰撞和挡板相似,以挡板为例:小球的坐标处设置为球心坐标,故其与挡板的碰撞位置判断时需要加上小球的半径当小球与挡板的上部碰撞时:小球位置应在挡板的左右横坐标之间,当小球球心位置+小球半径<挡板上沿并且小球位置>挡板下沿(保证球不会穿过挡板)时,小球的则不能继续穿过挡板,(为了实现小球镜面反射式的碰撞)则小球的水平速度不变,竖直速度反向,实现代码如下:绘制小球对比以上方式,小球与挡板侧面发生碰撞时,只需小球的竖直速度不变,水平速度反向即可。小球与墙壁的碰撞方式与小球与挡板的类似。4.实现键盘控制的挡板移动挡板的方向设置为三个,0为静止,1为向右,-1为向左,分别用A和D控制左右:5.菜单游戏介绍及难度等级的选择在菜单中,实现了游戏说明,以及难度等级的选择,实现结果如下图所示:五、附加功能的实现:1.砖块的绘制、与小球的碰撞和砖块的消失砖块的存储运用了数组,存储了砖块的四个顶点坐标,并利用循环画出,对于砖块的碰撞与前面的小球与挡板的碰撞判断方式相似,这里就不再复述了,对于砖块的消失,运用了一个的来进行标识,小球每次与砖块发生碰撞,则变为true,绘制时此砖块就不再画出,具体实现代码如下:显示结果如下:2.画面背景的五角星装饰,以及运用五角星的消隐来显示生命值的剩余五角星的绘制也是运用了数组存储,其消隐运用了changecolor每次加一定大小的值来改变五角星的颜色,从而在生命值耗尽时,五角星颜色变成背景颜色实现五角星的消失,实现代码如下:3.文字标识的游戏的输赢在游戏开始前,画面显示为ready,当生命值耗尽时,显示为loe;当砖块打完,显示为win,实现结果如下:4.增加了小球的生命数以及血量条利用循环,小球每碰到地面一次,则血条长度减去一定值,实现代码如下:具体显示结果如下:5.增加了背景图案的变化和背景颜色的切换五角星的颜色会随着生命值的减少而逐渐褪去,生命耗尽时五角星会消失,实现方式上面已述:背景颜色的切换运用了,实现效果如下:六、总结与体会:弹球游戏的开发使我巩固了计算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论