网络游戏编程李哲1204211068讲述.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络游戏编程李哲1204211068讲述

三维魔方游戏程序设计 1.本人所做的主要工作 本人通过引进开发包DirectX和irrlicht Engine基于C++,来实现绘制三维的真实的九宫格虚拟魔方,并且通过鼠标控制其整体的旋转,和各个层的旋转。 课题需求分析 2.1 课题的功能需求 绘制三维仿真魔方:绘制一个六面体,是一个3*3*3形式的魔方 魔方的整体的缩放与旋转:通过鼠标控制 魔方的旋转:通过鼠标点击按钮,控制其对应面的旋转 2.2 课题的性能需求 在电脑上最好能都简单的通过鼠标控制魔方游戏 使其操作更简单。 涉及的主要工作原理和关键技术介绍 3.1 三维图形绘制原理技术介绍 采用c++语言和irrlicht Engine对DirectX进行三维图形开发,首先介绍一下Device类,Device类用于完成DirectX 里所有绘图操作,我们可以把这个类假想为图形卡,场景里所有其他图形对象都依赖于Device,计算机里可以有多个Device。通过 Direct3D 绘制的每个对象都是有三角形组成的,一个三角形由三个点组成,而每个点都定义成一个向量来指定点的X、Y 和Z 坐标。DirectX 中有一种定义顶点的结构,那就是CustomVertex 类,只需要在渲染函数中添加绘制图形代码即可绘图。 绘制图元(primitives)根据其绘制方式,Device类主要提供了如下四个方法, 本次课程设计主要采用了如下绘图方法: public void DrawUserPrimitives( PrimitiveType primitiveType, int primitiveCount, object vertexStreamZeroData); DrawUserPrimitives()方法通过读取系统内存中的顶点数据来绘制图元。每次调用DrawUserPrimitives()方法时,顶点数据都是从系统内存中传递到显卡中,但通常对于大部分数据没有变换的情况下,采用这种方式绘制图元将导致每次渲染时都要从系统内存中调用重复的数据,当顶点数据量较大时,会导致程序运行速度非常慢。 绘制分段直线采用PrimitiveType. LineList 类型。 3.2 魔方旋转原理技术介绍 魔方的旋转主要是通过算法记录旋转前各个小块的颜色,旋转后重新对其着色。对图形不停地进行渲染。 3.3 关键问题解决思路 3.3.1三维魔方的描述问题的解决方法 定义了一个Block类,用来表示一个小的六面体,以及它所在的位置的世界坐标,和给它的每个面着色。包括旋转某个面后,被旋转小块的重新着色的实现。 3.3.2 魔方整体旋转问题的解决方法 通过鼠标点击拖动,控制魔方的整体旋转。 定义了一个鼠标监听函数,鼠标移动后,坐标的改变将引起视图显示的角度的变化,然后视觉上给人以不同的效果。 3.3.3 魔方每一层旋转和打乱问题的解决方法 每一层的旋转,定义了一个旋转函数,每次指定旋转层,根据其中心块的表面颜色,来执行旋转函数。旋转函数通过改变块的颜色,视觉上给人以旋转后的效果,即重新对魔方的部分要求被改变的小块进行着色。 打乱魔方则是通过随机指定旋转面,然后调用旋转函数。进行很多次的随机旋转后就会显现打乱后的魔方。 系统设计 4.1 系统总体结构、模块或流程 图一:系统的总体结构 根据礼品魔方的功能,主要分三个模块,三维魔方的显示,魔方的整体翻转,还有魔方的各层的旋转。 4.2 显示三维图形子模块的设计 图二:显示三维图形 三维图形的绘制是通过DirectX中的device设备实现的,通过摄像机,将世界坐标系中的图形转换到视图矩阵,然后采用PositionColored形式来定义顶点格式结构 4.3 魔方的整体翻转子模块的设计 图三:魔方的整体翻转 魔方的整体翻转:是通过鼠标监听函数接受鼠标输入来改变三维图形的显示角度,控制矩阵的偏移。 4.4 魔方的各层旋转子模块的设计 图四:魔方各层旋转结构图 魔方各层的旋转:是通过记录改变各个小块的面的颜色情况来实现旋转的。 4.5 魔方的打乱 魔方的打乱只是多次随机调用魔方的层旋转函数。 系统实现 在主菜单上选择“项目——添加引用”,然后在.NET 中添加Microsoft.DirectX.Microsoft.DirectX.Direct3D 和Microsoft.DirectX.Direct3DX,如下图所示: 打开窗体和类的代码,为其添加DirectX 引用,如下: using Microsoft.DirectX; using Micr

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档