游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 轩辕崇正

[DirectX]2D游戏地形半透明遮挡问题。。

[复制链接]

0

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2010-9-9 00:23:00 | 显示全部楼层

Re: Re: Re:[DirectX]2D游戏地形半透明遮挡问题。。

轩辕崇正: Re: Re:[DirectX]2D游戏地形半透明遮挡问题。。



我想知道大话西游2的半透明遮挡是如何实现的,你知道么?或者如果给你一张长安城的地图,你可以实现那种效果么?

尽量用地图块的方法,就是cqgame2009说的第一种,实现起来比较简单,而且游戏容量也可以降下来
参考圣剑II的实现,源码

2

主题

41

帖子

66

积分

注册会员

Rank: 2

积分
66
发表于 2010-9-9 13:31:00 | 显示全部楼层

Re:[DirectX]2D游戏地形半透明遮挡问题。。

整图的局部半透明效果,要看引擎的支持。
如果是DDRAW的引擎,实现比较费事,且速度不理想。
如果是D3D的引擎,实现较简单,在渲染人物的时候使用地图的mask通道做透明即可。需要美术来绘制好mask通道。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2010-9-9 16:30:00 | 显示全部楼层

Re: [DirectX]2D游戏地形半透明遮挡问题。。

我现在打算把地形和建物分离出来,地形可能用矩形拼接,也可能直接用整图,但建物方面则把地图分割成N个菱形地图块,然后以此来检测碰撞以及遮挡。

参考图:(该图尺寸为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值,则说明产生了遮挡,然后以半透明方式再次渲染该人物。

0

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2010-9-9 19:23:00 | 显示全部楼层

Re: Re: [DirectX]2D游戏地形半透明遮挡问题。。

轩辕崇正: Re: [DirectX]2D游戏地形半透明遮挡问题。。

我现在打算把地形和建物分离出来,地形可能用矩形拼接,也可能直接用整图,但建物方面则把地图分割成N个菱形...

这就对了,设计一下地图文件的结构,尽量减小内存使用

0

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2010-9-9 19:30:00 | 显示全部楼层

Re: Re:[DirectX]2D游戏地形半透明遮挡问题。。

cqgame2009: Re:[DirectX]2D游戏地形半透明遮挡问题。。

整图的局部半透明效果,要看引擎的支持。
如果是DDRAW的引擎,实现比较费事,且速度不理想。
如果是D3D的...

如果DDRAW和D3D都有透明混合的方法(当然DDRAW要自己写),那么设计整图的局部半透明效果其实是一样的,因为设计的不是渲染引擎,而是设计地图引擎,主要是你设计的地图结构,而且以现在的硬件,用cpu计算32位的透明混合速度还是很理想的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-6 15:13

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表