game programming (3)

      这一节课主要介绍了2D游戏的一些内容,涉及到2维游戏主要是一些如雷电这些射击消除游戏,如2.5D的一些RPG游戏,如仙剑1。还有一些如暗黑破坏神1。这类游戏中用到的一些技术,如地图等。其他内容并不是很重要,不过我看PPT的时候看到一个关于腐蚀,膨胀的操作,仔细研究了一下,因为在小组讨论班上面有师兄(好像是师姐...)提到过。我作了一些摘录。

 

2D game

 

一、几种地图类型:

1.固定地图

2.滚屏地图

3.多层次地图

4.菱形地图

 

二、位图的格式: 

位图BMP及其内容

 

typedef struct { DWORD biSize; //= sizeof(BITMAPINFOHEADER) DWORD biWidth; // 位图宽度(以象素计) DWORD niHeight; //正数,左下角为起始点,从下向上 //负数,左上角为起点,从上向下 WORD biplanes; //color plane数,恒等于1 WORD biBitCount; // 1, 4, 8, 24, 32 DWORD biCompression; //通常,以下域可以忽略,置为0即可 DWORD biSizeImage; DWORD biXPelsPerMeter; DWORD biYPelsPerMeter; DWORD biClrUsed; //位图使用的颜色 DWORD biClrImportant; //重要颜色数 } BITMAPINFOHEADER  

 

 

三、常见的碰撞检测方法
1.区域检测
a)碰撞点检测
b)颜色检测:较为精确,相对耗时
 
四、亮度增强
将每一个象素灰度值加上一个常数
 
五、提高对比度
将原始图像直方图的取值范围[Xmin,Xmax]通过线性变换扩大至[0,Ymax]
 
 
六、淡入淡出
如果让ALPHA从1变到0,就得到淡出的效果
 
七、Morphing(变形)
 
八、模糊(blur)
将每个象素用其周围邻域象素值的加权平均值替代
九、形态算子
腐蚀:减少物体边界的象素数
膨胀:增加物体边界的象素数
 
复合方法
–开:腐蚀,然后膨胀
–闭:膨胀,然后腐蚀
 
腐蚀
—定义:物体的颜色是白,背景是黑
定义腐蚀模板为
1     1     1
1     1     1
1     1     1
将模板与图像进行加操作
如果有,则结果为1,否则为0
模板的效果相当于去掉物体边界处的单个象素
膨胀是腐蚀的逆操作
模板文件是
0     0     0
0     0     0
0     0     0
其效果相当于在物体的边界添加单个象素
 
轮廓抽取
先做腐蚀操作, 再将腐蚀结果图像减去原始图像
 


 

 

你可能感兴趣的:(游戏,struct)