摘要:
由于新项目动工,UI方面需要确定方向,所以最近纠结于各种解决方案的选择。以下是对各方案的比较,仅供参考,希望对同样纠结于此的朋友有所帮助:)1.沿用当前的UI公司是从2D游戏起家的,2D游戏本身就相当于一套庞大的UI,所以这方面有所积累。这套UI系统至少是经过几十万玩家测试,稳定性自然不必说,而且移植到 3D游戏后,绕过Ogre,使用DX直接绘图绘文字,速度非常快,而且文字可以轻松实现多种字体,以及加粗、斜体、下划线等效果,所以继续沿用似乎是比较好的选择。但是它同样存在问题,因为一方面UI脚本机是我们自己实现的,当时为了跨平台(移动设备)没有使用Lua,phyon等,所以脚本像汇编写起来也比较 阅读全文
摘要:
在您决定开发 Windows 提供的常规免费自定义控件范围之外的控件之后,您必需确定自己的控件将有多少独到之处 — 在功能和外观两方面。例如,我们假定您正在创建一个类似于计速表的控件。由于公共控件库 (ComCtrl32.dll) 中没有类似的控件,您完全需要自己进行以下操作:编写所有控件功能需要的代码,进行绘制,默认终端用户的交互,以及控件与其父窗口之间需要的任意消息处理。(#add 两方面,公共控件库中没有类似的 完全重写; 只想调整公共控件功能,则可以部分修改) 另一方面,还包括一些您只想调整公共控件功能的情况。例如,我们假定您想创建一个屏蔽编辑控件,它只允许接受指定的字符。如果使用 . 阅读全文
摘要:
一、Gamebryo的基本构成及其工作流程 Gamebryo是一款便捷且易上手的开放式跨平台游戏开发引擎,他整合了多家当今的成熟技术。图01说明了Gamebryo的基本构成和技术特点。我们随后对其中的主要技术特点做简单的介绍。Gamebryo的基本构成和技术特点 那么,Gamebryo中的技术是如何在开发游戏中发挥作用的呢?图02演示了使用Gamebryo的工作流程。Gamebryo的工作流程 从图中可看出,Gamebryo为当今主要的DCC工具(MAX、Maya、XSI),它都提供了游戏所需资源的导出插件。这些导出插件的用户界面简单、方便且易使用。美术人员可轻而易举地设置导出环境。从而... 阅读全文
摘要:
一、单一职责原则:英文名称是Single Responsibility Principle,简称SRP。有且只有一个原因引起类的变更。There should never be more than one reason for a class to change. 例如在电话类的设计中,接口包含三个方法:拨号,通话和挂电话。但是这个接口包含了两个职责,拨号和挂电话属于协议管理,通话属于数据传输。不符合单一职责原则。可以将拨号和挂电话作为一个接口,通话作为一个接口,一个类实现了这两个接口,把两个职责融合在一个类中,对外公布的是接口,而不是实现类。优点:类的复杂度降低,提高了可读性,可维护性,降低 阅读全文
摘要:
在城市中,我们估算两点之间的距离时,往往不会直接去测量两点之间的直线距离,而会去考虑它们相距多少个街区。在理想模型中,假设每条道路都是水平或者竖直的,那么只要你朝着目标走(不故意绕远路),不管你怎样走,花费的路程都是一样的。今天,我看到了一个非常有意思的名词——出租车几何学 (taxicab geometry) ,其名称就来源于这样的想法。 在出租车几何学中,点还是形如 (x, y) 的有序实数对,直线还是满足 a x + b y + c = 0 的所有 (x, y) 组成的图形,角度大小的定义也和原来一样。只是,(x1, y1) 和 (x2, y2) 的距离重新定义为了 |x1- x2| + 阅读全文
摘要:
1 doxygen是大名鼎鼎代码文档工具。下载地址:www.doxygen.org安装它。http://www.stack.nl/~dimitri/doxygen/download.html可下载.2 Graphviz这个工具配合doxygen使用,可以提取函数,模块之间的调用关,非常清晰。下载地址:http://www.graphviz.org/Download..php下面是Graphviz提取出来的一些关系图:3 htmlhelp这个工具把doxygen生成的html文件,转化为一个CHM文件,看起来方便些。下载地址:http://www.microsoft.com/downloads/ 阅读全文
摘要:
矢量的概念: 如果一条线段的端点是有次序之分的,我们把这种线段成为有向线段(directed segment)。如果有向线段p1p2的起点p1在坐标原点,我们可以把它称为矢量(vector)p2。矢量加减法: 设二维矢量P = ( x1, y1 ),Q = ( x2 , y2 ),则矢量加法定义为: P + Q = ( x1 + x2 , y1 + y2 ),同样的,矢量减法定义为: P - Q = ( x1 - x2 , y1 - y2 )。显然有性质 P + Q = Q + P,P - Q = - ( Q - P )。 矢量叉积: 计算矢量叉积是与直线和线段相关算法的核心部分。设矢... 阅读全文
摘要:
1. Textures and Data Resource Formats 一个2D纹理,就是一组数据的矩阵。一个典型的2D纹理就是一张2D图片。在2D图片中,每一个元素保存着像素的颜色。1D 纹理可以认为是1为数组, 3D纹理可以认为是3维数组。一个纹理,它是不能存储任何格式的数据的,它只能存储一个类型的格式的数据。这些类型在DXGI_FORMAT中列出来。 如:DXGI_FORMAT_R32G32B32_FLOAT:每一个元素有3个32位的浮点型点。DXGI_FORMAT_R16G16B16A16_UNORM:: 每一个元素有4个16位的数组成, 这些数在[0, 1] 范围内浮动。2. d 阅读全文
摘要:
在windows系列上做编程,gdi是一个很重要的技术点,有很多程序在运行多次后出现异常,除了众所周知的内存泄露以外,gdi资源泄露也是一个很直接的原因.今天就把我自己在编程中总结的一些经验给大家分享,欢迎高手补充.1.Create出来的gdi对象,一定要用DeleteObject来释放,释放顺序是先Create的后释放,后Create的先释放.这里的Create指的是以它为开头的gdi函数,比如,CreateDIBitmap,CreateFont等等,最后都要调用DeleteObject来释放.2.Create出来的dc要用DeleteDC来释放,Get到的要用ReleaseDC释放.3.确 阅读全文
摘要:
三、递推法递推法是利用问题本身所具有的一种递推关系求问题解的一种方法。设要求问题规模为N的解,当N=1时,解或为已知,或能非常方便地得到解。能采用递推法构造算法的问题有重要的递推性质,即当得到问题规模为i-1的解后,由问题的递推性质,能从已求得的规模为1,2,…,i-1的一系列解,构造出问题规模为I的解。这样,程序可从i=0或i=1出发,重复地,由已知至i-1规模的解,通过递推,获得规模为i的解,直至得到规模为N的解。【问题】阶乘计算问题描述:编写程序,对给定的n(n≤100),计算并输出k的阶乘k!(k=1,2,…,n)的全部有效数字。由于要求的整数可能大大超出一般整数的位数,程序用一维数组 阅读全文