[DirectX]2D游戏地形碰撞及半透明遮挡有关问题。

[DirectX]2D游戏地形碰撞及半透明遮挡问题。。
先看参考图:(该图尺寸为1024×1024,版面所限,复制链接可以查看全图)


0:参考图说明
·上图中红色菱形框代表不可通行
·人物的脚部矩形RECT用于碰撞检测及遮挡检测

1:概述:
【地图场景】根据地形图素手工绘制或直接用整张图(我的地图与建物的设计有些不同,地形可能是用矩形拼的,也可能是整张图,而建物则是以菱形摆放的)

【地图信息文件】记录所有菱形地图块的属性:建物编号,是否可通行
【地图建物文件】由各个png格式的建物图片打包而成
【建物信息文件】保存所有建物数据:图片索引、宽高
【角色信息文件】保存所有角色的图片索引、8方向的碰撞矩形RECT

另外人物在地图中的XY坐标以人物图片左上角0,0为基准

2:渲染顺序
·渲染地形—第1层
·渲染人物—第2层
·渲染建物—第3层
·渲染人物的半透明遮挡部分

3:人物的碰撞检测
人物每走一个单位,就判断人物的碰撞矩形RECT所占据的所有菱形地图块,如果人物移动的目标位置周边均无障碍,则可通行,否则不可通行。

4:半透明遮挡检测
人物每行走一个单位,判断人物的碰撞矩形RECT所占据的地图块类型,然后找到该地图块在人物RECT的left的位置上最低障碍的bottom值(即,从人物碰撞矩形RECT的left处开始,向下找该地图块最低的碰撞RECT)如果该位置低于人物碰撞RECT的bottom值,则说明产生了遮挡,然后以半透明方式再次渲染该人物。


欢迎研究2D游戏的朋友来讨论。。。

------解决方案--------------------
不管怎么说,我早就开发过2D游戏。你呢?

------解决方案--------------------
其实我的理解是,他是想说,当图像叠加时,重合部分的状态设一个透明点的状态
------解决方案--------------------
好吧我承认,以你的资源,无法使用我所说的渲染方法。

技术是没有对错的。我现在也可以这么说。
错的是人,以及他所使用的资源。