100分在线求(2D游戏 斜45度地图中) 精灵(玩家,NPC) 与景物以及精灵与精灵之间的遮挡处理,如何处理好? 请你进来拿分,~~~~~~~在线等!!

wenzhoufeng22 2008-07-24 05:45:25
100分求(2D游戏 斜45度地图中) 精灵(玩家,NPC) 与景物以及精灵与精灵之间的遮挡处理,如何处理好? 请你进来拿分,~~~~~~~在线等!!

我的地图上的景物层与景物层已经做好遮挡关系,只要采用它在地图上的X和Y坐标大小关系来判断,就可以判断出谁挡在谁前面

现在是我有一个精灵在跑动,这样的话透明处理如何搞定!

C++和Directx下实现~

鄙人不才,望您指点一下!
...全文
538 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
feng 2008-07-31
  • 打赏
  • 举报
回复
msn: jungle_footer@hotmail.com
wenzhoufeng22 2008-07-31
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 feng 的回复:]
可以用对角线的方法来实现.
具体实现是每个物体,包括动的和不动的,都用一个平行四边形勾勒出它所占的菱形块边界,通过排序这个四边形就能把遮挡关系算出来了
[/Quote]

怎么联系你.
正宗老冉 2008-07-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Angleyuhj 的回复:]
游戏不行,帮顶~
[/Quote]
feng 2008-07-30
  • 打赏
  • 举报
回复
可以用对角线的方法来实现.
具体实现是每个物体,包括动的和不动的,都用一个平行四边形勾勒出它所占的菱形块边界,通过排序这个四边形就能把遮挡关系算出来了
执假以为真 2008-07-27
  • 打赏
  • 举报
回复
帮你顶到游戏论坛去!
赵Andy 2008-07-27
  • 打赏
  • 举报
回复
帮顶了。
OpenHero 2008-07-26
  • 打赏
  • 举报
回复
《windows游戏编程大师 》
macfan 2008-07-26
  • 打赏
  • 举报
回复
GUI编程纯粹不懂
帮顶
KenFire 2008-07-25
  • 打赏
  • 举报
回复
m_uLevel的取值是1,2,3,4;
KenFire 2008-07-25
  • 打赏
  • 举报
回复
利用了z缓冲,整个问题就简单得多了;
关键就是z值的取值问题;

例如,我的程序窗口大小为800*600.而hge里面z缓冲的取值范围是0.0f~1.0f;(当中0.0f为最顶层)
SetZ( (600.0f - m_fposY) * (1.0f - m_uLevel*0.25f)/600.0f );
这句是解决遮掩问题的关键;
m_fposY是对象的屏幕Y坐标;
uLevel是层次;
0.25f是因为我将整个画面以遮掩关系分成了四层.1.0f/4 = 0.25f;

两个对象位于同一遮掩层次的话,Y坐标大的z值较小,也就是越接近顶层,实现下面遮掩上面;
但是由于有层次的限制,下层的对象z值永远小于上层的对象,实现层次遮掩.

我昨天才写的,应该还会有地方不完善,望指出.
wenzhoufeng22 2008-07-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 KenFire 的回复:]
我刚用hge写了一个.
用z缓冲轻松解决.
可惜是3d才有z缓冲.
[/Quote]

HGE我也用过,我的引擎虽是2D的,但是是基于3D来的
能讲讲你的原理吗?
KenFire 2008-07-25
  • 打赏
  • 举报
回复
我刚用hge写了一个.
用z缓冲轻松解决.
可惜是3d才有z缓冲.
wenzhoufeng22 2008-07-24
  • 打赏
  • 举报
回复
我的是Directx9
wwwxinkai 2008-07-24
  • 打赏
  • 举报
回复
Directx8.0?
DDraw?
如果是的话去GAMERES上,有一个实例,叫什么我忘了,
是用ddraw实现的,有时间的话你去看下吧~
那个DEMO做的很强~!
Angleyuhj 2008-07-24
  • 打赏
  • 举报
回复
游戏不行,帮顶~
lin_style 2008-07-24
  • 打赏
  • 举报
回复
汗。。
怎么不到专业的游戏论坛
不是有个gamer吗

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧