上一页 1 ··· 56 57 58 59 60 61 62 63 64 ··· 94 下一页
摘要: 要介绍的引擎中出现的第一个新文件是mathDefines.h头文件。该文件保存了所有的define语句,这些语句是数学库、引擎及游戏都要用到的内容。这些define语句包含了π(圆周率,圆的周长与直径的比值)的定义、平面结果和将度转换成弧度的宏。该文件随着本书的深入而不断扩充,但目前它非常小,只包含几个define语句。程序清单8.30给出了mathDefines.h头文件的内容。mathDefines.h头文件#ifndef _UGP_MATH_DEF_H_#define _UGP_MATH_DEF_H_#define UGP_FRONT 0#define UGP_BACK 1... 阅读全文
posted @ 2011-09-13 15:27 小 楼 一 夜 听 春 雨 阅读(860) 评论(0) 推荐(0)
摘要: 平面是一个无限扩展的区域。读者可以将其形象化为沿着上下两个方向无限扩展的平面墙。如果很难理解平面这个概念,那么试着考虑一下宇宙。想象一样,宇宙非常平而且沿着所有其他边不断无限扩展的情况。虽然屏幕区域有限,但可以在屏幕上绘制平面,因为只要对有限数量的像素做阴影处理即可。然而,在Direct3D和OpenGL中并没有内置渲染平面的方法。所以,如果不能渲染平面,那就会出现问题,即平面到底对谁有好处?关于这个问题,答案有很多。最常见的一个答案就是几何图形选择和碰撞检测有了几何图形选择,就可以创建一个平面或一系列平面,而这取决于几何图形位于平面的哪一侧,并可以快速确定是否需要绘制该对象。因为这可以很大程 阅读全文
posted @ 2011-09-11 11:48 小 楼 一 夜 听 春 雨 阅读(748) 评论(0) 推荐(0)
摘要: 矢量是游戏开发中涉及到的最基本的对象。矢量有多种形式,可以是2D、3D或4D等。3D矢量是一个包含3个浮点数的结构,每个值代表矢量中不同的轴。这些值分别是x、y和z轴,可用于描述三维空间。矢量用于描述3D空间中的方向,它可能也是最常用的数学对象。矩阵是游戏开发中第二个最常用的数学对象。矩阵主要用于将矢量从一个坐标系转换到另一个坐标系,还可用于旋转和平移。矩阵由浮点数的2D数组组成。3×3矩阵由3行、3列共9个元素组成,4×4矩阵是由4行、4列共16个浮点元素组成的2D数组。四元组用于描述旋转。四元组是由4个浮点数w、x、y、z构成的结构,像4D矢量。虽然矩阵也可用于旋转,但 阅读全文
posted @ 2011-09-11 02:40 小 楼 一 夜 听 春 雨 阅读(1170) 评论(0) 推荐(1)
摘要: 实际上根据为引擎添加脚本支持的要求,目前要做的工作是将本章创建的文件复制到Stranded引擎的文件夹中。这些文件分别是CommandScript.h、CommandScript.cpp、PropertyScript.h、PropertyScript.cpp、Token.h和Token.cpp。每个类都可以独立工作,所以转换工作就非常简单。 阅读全文
posted @ 2011-09-10 18:47 小 楼 一 夜 听 春 雨 阅读(286) 评论(0) 推荐(0)
摘要: 文件是由分开的不同文本块组成的。这些文本可用作命令、属性名称、字符串、数字等。所使用的这些内容有一个共同点,即它们是用分隔符分开的。分开的每一组文本称为一个令牌。文件可以由许多令牌组成,每个令牌都有自己的用途和含义。在不考虑出现令牌原因的情况下,令牌只是一些文本。如果愿意的话,有时可以将文件分隔成一系列令牌——令牌流——这是一种很好的做法。如果读者曾经研究过更高级类型的脚本,实际上就会发现这只是为了将脚本编译成一种更低级形式而要做的一些工作。也许在创建命令和属性脚本系统时,已经使用过令牌流。虽然有一种获取信息的方法,但如果本该使用令牌流而没有使用,那么这个方法就不是很清晰。例如,对属性脚本而言 阅读全文
posted @ 2011-09-10 16:37 小 楼 一 夜 听 春 雨 阅读(801) 评论(0) 推荐(1)
摘要: 命令脚本是一种在文件中包含许多命令的脚本。命令脚本和属性脚本非常相似,除了每一行第一个单词所代表的意思不同之外。在基于命令的脚本中,通常要有一个文件,并且会解释该文件,直到文件执行到结束或是出现错误为止。伪代码:Open the script file and get the line count.Create an array of strings for each line.In the application loop through each line.Get the command and check if it is invalid or a comment.if valid, g 阅读全文
posted @ 2011-09-10 12:39 小 楼 一 夜 听 春 雨 阅读(330) 评论(0) 推荐(0)
摘要: script.spt# This is an example of a comment.teapotColor 0.0 0.0 1.0cameraPosition 0.0 0.0 -5.0# These are not used but are here to test loading strings and ints.totalTeapots 1description This just a teapot in a 3D scene! PropertyScript.h#ifndef _UGP_PROPERTY_SCRIPT_H_#define _UGP_PROPERTY_SCRIPT_H_. 阅读全文
posted @ 2011-09-10 00:17 小 楼 一 夜 听 春 雨 阅读(369) 评论(0) 推荐(0)
摘要: 为了启动项目,这里将在defines.h文件中为想要在引擎中使用的雾和多采样功能添加几个define语句。对雾而言,将使用想要创建的雾的枚举类型。对多采样而言,将使用可以支持的多采样枚举类型。对该引擎而言,这里将支持非多采样、2倍、4倍、8倍和16倍速率采样等几种采样类型。雾枚举类型的名称是UGP_FOG_TYPE,而多采样枚举类型的名称是UGP_MS_TYPE。更新后的defines.h文件如程序清单6.15所示。注意在defines.h文件末尾处添加枚举类型,由于该文件的其他内容已经介绍过,因此这里没有列出。程序清单6.15 更新后的defines.h头文件#ifndef _UGP_DEF 阅读全文
posted @ 2011-09-06 20:40 小 楼 一 夜 听 春 雨 阅读(525) 评论(1) 推荐(0)
摘要: 动态链接库、静态库、import库区别 动态链接库(Dynamic Linked Library):Windows为应用程序提供了丰富的函数调用,这些函数调用都包含在动态链接库中。其中有3个最重要的DLL,Kernel32.dll,它包含用于管理内存、进程和线程的各个函数; User32.dll,它 阅读全文
posted @ 2011-09-06 10:16 小 楼 一 夜 听 春 雨 阅读(43016) 评论(8) 推荐(29)
摘要: 粒子系统保存和操纵一种称为粒子的元素。粒子系统的职责就是对粒子施加不同的作用力,为它们增加一种真实的外观。粒子系统的类型包括爆炸、烟、火、火花等,而其他类型的效果可由许多小的元素构成。粒子是一个小物体,包含多种属性,如位置、速度(方向)和质量。游戏中,粒子通常是添加了纹理的小正方形,通常面向摄象机。在实现点状sprite时已经介绍过这一点。点状sprite可以由粒子系统使用,从而有效地生成多种不同的效果。粒子系统示例如图6.5所示。通常,粒子相互之间独立作用,但却限制在粒子系统范围内。例如,所有的粒子也许从相同位置开始或从比较接近的位置开始,但它们都有自己的属性,将彼此分隔开。同样,通常在游戏 阅读全文
posted @ 2011-09-05 20:36 小 楼 一 夜 听 春 雨 阅读(734) 评论(0) 推荐(0)
上一页 1 ··· 56 57 58 59 60 61 62 63 64 ··· 94 下一页