网络游戏编程李哲1204211068

网络游戏编程李哲1204211068

ID:39623770

大小:536.86 KB

页数:21页

时间:2019-07-07

网络游戏编程李哲1204211068_第1页
网络游戏编程李哲1204211068_第2页
网络游戏编程李哲1204211068_第3页
网络游戏编程李哲1204211068_第4页
网络游戏编程李哲1204211068_第5页
资源描述:

《网络游戏编程李哲1204211068》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、三维魔方游戏程序设计1.本人所做的主要工作本人通过引进开发包DirectX和irrlichtEngine基于C++,来实现绘制三维的真实的九宫格虚拟魔方,并且通过鼠标控制其整体的旋转,和各个层的旋转。课题需求分析2.1课题的功能需求绘制三维仿真魔方:绘制一个六面体,是一个3*3*3形式的魔方魔方的整体的缩放与旋转:通过鼠标控制魔方的旋转:通过鼠标点击按钮,控制其对应面的旋转2.2课题的性能需求在电脑上最好能都简单的通过鼠标控制魔方游戏使其操作更简单。涉及的主要工作原理和关键技术介绍3.1三维图形绘制原理技术介绍采用c++语言和irrlic

2、htEngine对DirectX进行三维图形开发,首先介绍一下Device类,Device类用于完成DirectX里所有绘图操作,我们可以把这个类假想为图形卡,场景里所有其他图形对象都依赖于Device,计算机里可以有多个Device。通过Direct3D绘制的每个对象都是有三角形组成的,一个三角形由三个点组成,而每个点都定义成一个向量来指定点的X、Y和Z坐标。DirectX中有一种定义顶点的结构,那就是CustomVertex类,只需要在渲染函数中添加绘制图形代码即可绘图。21绘制图元(primitives)根据其绘制方式,Device

3、类主要提供了如下四个方法,本次课程设计主要采用了如下绘图方法:publicvoidDrawUserPrimitives(PrimitiveTypeprimitiveType,intprimitiveCount,objectvertexStreamZeroData);DrawUserPrimitives()方法通过读取系统内存中的顶点数据来绘制图元。每次调用DrawUserPrimitives()方法时,顶点数据都是从系统内存中传递到显卡中,但通常对于大部分数据没有变换的情况下,采用这种方式绘制图元将导致每次渲染时都要从系统内存中调用重复的

4、数据,当顶点数据量较大时,会导致程序运行速度非常慢。绘制分段直线采用PrimitiveType.LineList类型。3.2魔方旋转原理技术介绍魔方的旋转主要是通过算法记录旋转前各个小块的颜色,旋转后重新对其着色。对图形不停地进行渲染。3.3关键问题解决思路3.3.1三维魔方的描述问题的解决方法定义了一个Block类,用来表示一个小的六面体,以及它所在的位置的世界坐标,和给它的每个面着色。包括旋转某个面后,被旋转小块的重新着色的实现。3.3.2魔方整体旋转问题的解决方法通过鼠标点击拖动,控制魔方的整体旋转。定义了一个鼠标监听函数,鼠标移动

5、后,坐标的改变将引起视图显示的角度的变化,然后视觉上给人以不同的效果。3.3.3魔方每一层旋转和打乱问题的解决方法每一层的旋转,定义了一个旋转函数,每次指定旋转层,根据其中心块的表面颜色,来执行旋转函数。旋转函数通过改变块的颜色,视觉上给人以旋转后的效果,即重新对魔方的部分要求被改变的小块进行着色。打乱魔方则是通过随机指定旋转面,然后调用旋转函数。进行很多次的随机旋转后就会显现打乱后的魔方。系统设计214.1系统总体结构、模块或流程图一:系统的总体结构根据礼品魔方的功能,主要分三个模块,三维魔方的显示,魔方的整体翻转,还有魔方的各层的旋转

6、。4.2显示三维图形子模块的设计图二:显示三维图形三维图形的绘制是通过DirectX中的device设备实现的,通过摄像机,将世界坐标系中的图形转换到视图矩阵,然后采用PositionColored形式来定义顶点格式结构214.3魔方的整体翻转子模块的设计图三:魔方的整体翻转魔方的整体翻转:是通过鼠标监听函数接受鼠标输入来改变三维图形的显示角度,控制矩阵的偏移。4.4魔方的各层旋转子模块的设计图四:魔方各层旋转结构图魔方各层的旋转:是通过记录改变各个小块的面的颜色情况来实现旋转的。4.5魔方的打乱魔方的打乱只是多次随机调用魔方的层旋转函数

7、。系统实现在主菜单上选择“项目——添加引用”,然后在.NET中添加Microsoft.DirectX.Microsoft.DirectX.Direct3D和Microsoft.DirectX.Direct3DX,如下图所示:21打开窗体和类的代码,为其添加DirectX引用,如下:usingMicrosoft.DirectX;usingMicrosoft.DirectX.Direct3D;publicpartialclassCubeUI:Form{//定义全局变量publicstaticMicrosoft.DirectX.Direct3D

8、.Devicedevice=null;//定义绘图设备privatestaticMicrosoft.DirectX.DirectInput.Devicemouse;//定义鼠标设备privat

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

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

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