一: 指针和引用:
1 指针:
a:把数据块的地址传递作为函数的参数要比直接用数据速度要快
b:函数指针变量:将函数执行地址保存起来的变量
2:引用:只是变量的别名,没有给他分配内存, 且在声明的同时要进行初始化
数据类型 &引用名=变量名
注:函数参数使用引用传递,最终编译后仍然是使用指针来传递的..
二 数据的封装
1:构造函数以及析构函数都是没有返回值得
2:new 创建的对象 返回对象的指针
3:重载技术:函数名相同但是参数和返回值不同,会根据函数的参数来调用相应得函数.
4覆盖技术:
A: 虚函数,在继承类中定义同名,同参数,同返回值得函数,在基类在被覆盖的函数前加virtual进行修饰,一旦函数在一个类中声明为虚函数,则在该类的继承类中定义的函数也是虚函数,但不必用virtual修饰。
注意:一般不提倡直接在继承类中重新定义基类中非虚函数
B:纯虚函数:在虚函数声明后加上"=0"的标记,则该函数称为纯虚函数,若一个类中含有纯虚函数则该类称为抽象类,抽象类不创建对象.
5:访问权限
三:com组件:用release来处理使用完的组件对象,COM接口都具有前缀”I”
四 Directx3D基础
1:表面IDirect3DSurface9
LockRect() 获得一个指向表面内存的地址,这样就可以对表面的任意像素点进行读写操作。
UnlockRect()给表面解锁
GetDesc()返回描述信息。
2:Multisampling全屏抗锯齿
3:像素格式 D3DFMT_R8G8B8, D3DFMAT_X8R8G8B, D3DFMT_A8R8G8B8
4:内存池
5:交换链:DirectX3D创建2-3个表面组成一个集合.
注:交换链和页面切换技巧被用在两帧之间过渡更平滑。
6 :深度缓冲(Z- buffering):纪录像素的深度信息
7 : 顶点的处理方式:
软件方式
硬件方式
8:设备能力
五: 游戏框架,输入和时钟类/
1: 键盘:
创建键盘的设备-> 设定其的数据的格式->协调级别->获得访问权->初始化数据缓冲区.
2: 鼠标:
创建鼠标的设备-> 设定其的数据的格式->协调级别->获得访问权->设置缓冲区的属性
六:基本三角型的绘制
1:概括: 局部坐标:为场景中的三围物体进行三角形定点的坐标量化
世界坐标
摄影坐标: 方便剪裁和透视处理
2:处理顺序
A:创建IDirectX3D9接口对象-〉创建DirectX3D9设备-〉然后利用设备接口来处理
B: 创建DirectX3D9设备:功能检测(GetDeviceCaps())-〉显示属性的设置(GetAdapterDisplayMode())-〉创建DirectX3D9设备(CreateDevice())
C:创建定点缓冲区:
把要渲染得定点数据装入定DirectX3D点缓冲区
将定点缓冲区的数据倒入渲染管道流水线
设置渲染管道流水线的各种渲染参数
启动管道流水线进行渲染处理,比实现3D的场景的显示.
D:
1:创建设备: 创建接口->属性的检查->设置显示模式->创建设备.
2:定点缓冲区的初始化
3:渲染: 清理绘图表面为黑色->开始渲染->显然三角形->结束渲染->置换绘图表面的缓冲区,显示当前的帧.
4:释放各种设备和接口资源
十: API
MessageBox()
DWORD
timeGetTime() :运用时 include <mmsystem.h> winmm.lib
1.
GetMessage
将等到有合适的消息时才返回
,
而
PeekMessage
只是撇一下消息队列。
2.
GetMessage
会将消息从队列中删除
,
而
PeekMessage
可以设置最后一个参数
wRemoveMsg
来决定是否将消息保留在队列中。
3. TCHAR.H为需要字符串参数的标准执行时期链接库函数提供了一系列的替代名称(例如,_tprintf和_tcslen)。
十一:2D图形学知识
1:
CDX8Panel
类
: 2D
面板定义是一个简单的
2D
纹理矩形,我们将会把它绘制到屏幕上
2:
纹理是一个能够从文件装入或者通过数据生成的基本的位图
3:
面板和纹理的移动和旋转,我们可以通过先
Lock
在改变坐标来实现,但是
Lock
的代价是很高的,所以我们可以通过运用矩正变换来实现
十二
:SDK
1: