- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 网络技术第24讲讲述.ppt
- 网络广告设计-DR戴瑞戒指演讲PPT讲述.ppt
- 论文张雨洲详解.doc
- 网络技术应用模拟卷16-答案讲述.doc
- 语文乐园八详解.ppt
- 网络技术基础1讲述.ppt
- 语文三年级上西师大版7.32《永不凋谢的玫瑰》课件详解.ppt
- 语文天地五详解.ppt
- 网络安全第7章网络通信安全讲述.ppt
- 网络操作系统复习题讲述.doc
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)