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