- 博客(15)
- 收藏
- 关注
原创 Direct-X学习笔记--DirectInput
学了绘制简单的2D图形以及3D物体之后,该学学怎么控制物体了! 之前一直是用的是Windows自带的消息循环,WM_KEYDOWN,WM_MOUSELBUTTONDOWN等等,但是这个慢的不行,完全跟不上游戏的速度。以前用GDI/GDI+写游戏的时候使用过一个GetAsyncKeyState方法,可以用于实时的检测键盘按下,虽然简单,不过据本人亲测,会被360发现...所以还是好好学学正统的游戏
2015-06-20 14:10:37
2991
原创 Direct-X学习笔记--光照&材质&DX自带几何体绘制
DX中自带几何体的绘制: 为了方便,DX为我们提供了几种自带的几何体,我们就不需要定义成吨的顶点来绘制一个图形了。 常用的有几种,立方体,茶壶,柱体,球面体。 HRESULT D3DXCreateTeapot( __in LPDIRECT3DDEVICE9 pDevice, __out LPD3DXMESH *ppMesh, __out LPD3DXBUFFER *
2015-06-16 20:19:36
2311
原创 Direct-X学习笔记--变换
1.顶点格式改动: 之前写的几个例子都是2D的例子,使用的顶点格式是已经经过变换的顶点格式。而要写3D程序,我们就必须要用未经过变换的顶点。所以在定义顶点时也要有所改变://------------绘制图形步骤1.定义灵活顶点格式 #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE)//坐标为经过变换的屏幕坐标,顶点的颜色 //----
2015-06-15 17:36:32
1136
原创 设计模式学习笔记--代理模式
定义: 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 UML图: (图片来自百度百科) 例子: // 设计模式Demo.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include using
2015-06-14 14:52:23
1356
原创 DirectX学习笔记--索引缓存绘图
引言: 顶点缓存绘制图形,虽然比较简单,但是简单的图形还好。一个三角形,三个点。但是,比如我们要绘制一个立方体,需要6*2=12个三角形,总共要36个顶点,而实际上表示一个立方体只需要8个顶点就可以了。显然再使用顶点缓存绘图有些划不来,所以就有了索引缓存绘图。 定义: 索引缓存保存的就是一些索引,用于记录顶点缓存中每一个顶点的索引位置。这样,我们在定义顶点的时候,就不需要重复定义那些
2015-06-14 00:44:54
3124
2
原创 《C++Primer》读书笔记--异常处理
定义: 异常,让一个函数可以在发现自己无法处理的错误时抛出一个异常,希望它的调用者可以直接或者间接处理这个问题。 之前写的一些小程序,几乎没有用到过异常处理。因为规模比较小,一般的问题在函数内就加上一些判断条件解决了,一般的做法就是返回一个表示错误的值(比如返回NULL指针),在调用的时候判断一下返回的值,虽然简单,但是功能并不强大,只适合小型项目。而大型的项目,如果这么搞就乱套了
2015-06-14 00:30:51
654
原创 设计模式学习笔记--装饰模式
定义: 在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 形式: (1) 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。 (2) 装饰对象包含一个真实对象的引用(reference) (3) 装饰对象接受所有来自客户端的请求。它把这些请求转发给真实的对象。 (4)
2015-06-13 18:34:53
1233
原创 设计模式学习笔记--策略模式
定义: 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 我们在使用一些功能时,有时有很多种实现方法,或者多种结果,但是都有同样的使用方法,即调用接口,这就是策略模式。 例子: // 设计模式Demo.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #in
2015-06-12 16:15:32
1083
转载 彻底搞懂const,volatile, mutable的用法
转载地址:http://blog.csdn.net/wuliming_sc/article/details/3717017 const、volatile、mutable的用法 const修饰普通变量和指针 const修饰变量,一般有两种写法: const TYPE value; TYPE const value; 这两种写法在本质上是一样的。它的含义是:const修饰的类型为T
2015-06-12 00:29:39
722
原创 设计模式学习笔记--抽象工厂模式
纠结了好几天,总算是搞懂了点抽象工厂和工厂方法模式的一些区别了。 两篇很好的文章: http://blog.csdn.net/superbeck/article/details/4446177 http://blog.csdn.net/wyxhd2008/article/details/5597975 抽象工厂其实跟工厂方法模式差不多,都遵循开放--封闭原则,使用工厂接口创
2015-06-10 22:21:20
1248
原创 Direct-X学习笔记--图元绘制
DX中有6种图元: 顶点集合,线段集合,线段条带,三角形集合,三角形条带,三角扇形。 在渲染时一般采用三角形来构成多边形,三角形三个顶点一定共面,共面的时候,渲染较快。 (该图片来自百度) 我们在绘制的时候,使用该函数绘制图元,第一个参数为图元的类型,即上图中的几种类型: 点列集合 D3DPT_POINTLIST 一组点的集合 线列集合 D3DPT_LI
2015-06-09 12:23:44
1682
原创 设计模式学习笔记--工厂方法模式
学习过简单工厂模式,感觉很好用。在创建对象时,可以将复杂的初始化操作从客户端分离出来,简化客户端代码。大大的减少了代码修改的难度。而且可以通过参数不同,创建不同的对象。 但是简单工厂模式也有一些弊端,违背了开放--封闭原则。即如果我们增加了一个产品,对应的工厂也要进行修改,即switch---case中要新增加一些分支条件,不利于扩展。所以就有了下面的工厂方法模式: 工厂方法模
2015-06-07 21:48:04
917
原创 Direct-X学习笔记--顶点缓存绘图
DirectX描述物体使用三角形单元,构成三角形的最基本单位是顶点。 DirectX中顶点格式是很灵活的,即我们可以自己定义顶点所包含的信息。除了坐标之外,我们还需要定义其他附加属性,颜色属性,法线属性等等。 我们在定义的时候,首先要使用DX的一个宏声明一下我们所定义的顶点包含哪些属性。 //------------绘制图形步骤1.定义灵活顶点格式 #define D3DFVF_CUST
2015-06-07 18:19:01
1586
原创 设计模式学习笔记--简单工厂模式
背景: 在开发过程中,经常会创建大量的对象,创建对象后还会涉及到一系列的初始化操作,而我们也不一定会只是在创建对象之后马上就使用对象,而且如果初始化操作很复杂,代码看起来就会非常杂乱,如果有变动,所有的初始化操作都要进行修改,相当难以维护。 功能: 将对象的创建和使用分离开来,专门用于创建对象并初始化。并且进行扩展后,可以根据参数不同,创建不同的对象。 例子: // 设计
2015-06-06 22:53:47
1063
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人