游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6186|回复: 16

2D游戏地图中,物件和物件遮挡怎么计算的呀?

[复制链接]

6

主题

130

帖子

932

积分

高级会员

Rank: 4

积分
932
发表于 2016-4-9 16:10:08 | 显示全部楼层 |阅读模式
在通过一个2D游戏的地图map文件,还原游戏地图中碰到一个问题,就是地图上的物件显示先后的问题。
这是游戏地图map物件的结构:

7A 00 00 00 16 0D 00 00 AC 05 00 00 96 0D 00 00 2C 06 00 00 FF FF FF FF
7A 00 00 00 96 0C 00 00 6A 05 00 00 16 0D 00 00 EA 05 00 00 FF FF FF FF
7A 00 00 00 8D 0B 00 00 DD 04 00 00 0D 0C 00 00 5D 05 00 00 FF FF FF FF
7B 00 00 00 45 0E 00 00 95 05 00 00 C5 0E 00 00 15 06 00 00 FF FF FF FF

int id,int left,int top,int right,int bottom. 这样的结构。

但按这个顺序一直显示出来,位置是正确的,但就是先后顺序不对。某个物件本应该在另一个物件的后面,但被显示到前面了。
附图: QQ图片20160408091602.png

而map里面也没有相应的显示顺序的结构描述,我尝试过top,bottom,left,right。排序,中心点排序。都不对。卡壳了!
这样的问题,是不是在显示的时候有一个什么排序算法呢?



1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20356
QQ
发表于 2016-4-9 18:40:55 | 显示全部楼层
你可以加个z轴,用来计算排序。

6

主题

130

帖子

932

积分

高级会员

Rank: 4

积分
932
 楼主| 发表于 2016-4-10 13:45:50 | 显示全部楼层
sea_bug 发表于 2016-4-9 18:40
你可以加个z轴,用来计算排序。

这是人家的游戏,没有Z轴。呵呵。

0

主题

4

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2016-4-10 21:15:31 | 显示全部楼层
这是2d斜视角老生常谈的东西,好像论坛好些年就有讨论,风云大神就有阐述,一般斜视角遮挡都不会很完美。。传奇的遮挡有早有破解代码可以去看看

6

主题

130

帖子

932

积分

高级会员

Rank: 4

积分
932
 楼主| 发表于 2016-4-11 10:08:46 | 显示全部楼层
zcj2014zcj 发表于 2016-4-10 21:15
这是2d斜视角老生常谈的东西,好像论坛好些年就有讨论,风云大神就有阐述,一般斜视角遮挡都不会很完美。。 ...

那个文章我也看了,但这个是普通的矩形,地砖是矩形。物件的图片也是矩形。这个我就搞不懂了。怎么排序了。

0

主题

2

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2016-4-11 19:32:21 | 显示全部楼层
矩形有x,y 。可以抽象一个深度z
y可作为提供给矩形深度z的主要数据 , 根据深度z去决定图形绘制顺序,先绘制的必然会被后绘制的遮挡。

6

主题

130

帖子

932

积分

高级会员

Rank: 4

积分
932
 楼主| 发表于 2016-4-11 21:44:30 | 显示全部楼层
qq877542910 发表于 2016-4-11 19:32
矩形有x,y 。可以抽象一个深度z
y可作为提供给矩形深度z的主要数据 , 根据深度z去决定图形绘制顺序,先绘 ...

2D的没有这个。
而且这个是还原的人家的地图结构。没有Z轴!

3

主题

17

帖子

89

积分

注册会员

Rank: 2

积分
89
发表于 2016-4-12 09:30:19 | 显示全部楼层
我觉得不可能靠什么算法去排序,难度大,也没有这个必要.
要么有z数据你没发现,要么就是按y值去排序.

6

主题

130

帖子

932

积分

高级会员

Rank: 4

积分
932
 楼主| 发表于 2016-4-13 11:13:37 | 显示全部楼层
zado 发表于 2016-4-12 09:30
我觉得不可能靠什么算法去排序,难度大,也没有这个必要.
要么有z数据你没发现,要么就是按y值去排序. ...

确实没有深度的。

0

主题

275

帖子

676

积分

高级会员

Rank: 4

积分
676
发表于 2016-4-16 14:17:33 | 显示全部楼层
bottom做插入排序,物件貼圖順序就出來了
也就是上面一直講的y軸畫家演算法
一張圖就一個y值,所以還是會有視覺上衝突
要精細就要拆成若干長條圖,才能滿足圍牆式的遮擋,
不過通常選擇另一個方案,多設定一些不可走障礙不要讓玩家去接近牆
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-20 08:11

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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