求助:
这种2.5D视角,建筑都是按格子布置的,怎么处理建筑物之间的层级逻辑呢?
本人理解两个格子块之间的判断关系:
第一种情况,小建筑在大建筑上,蓝色线以上时,条件:2.row < X.row && 1.cel <= Y.cel;
第一种情况,小建筑在大建筑左,红色线以左时,条件:2.cel < X.cel && 1.row <= Y.row;
两个建筑之间,不管是几乘几,这个判断都OK,但是建筑一多了以后,排序就会混乱。。。
不知道怎么搞了
求助:
本人理解两个格子块之间的判断关系:
两个建筑之间,不管是几乘几,这个判断都OK,但是建筑一多了以后,排序就会混乱。。。
不知道怎么搞了
row 和 cel 都是从最上面角的点开始的,箭头方向划错了
有z轴啊 isoToScreen 函数中 z2 = (x+z) * 0.866 - y * 0.707
啥意思,没懂
等角坐标转换成屏幕坐标的时候 不要只算xy,把z轴也算出来,可以根据这个z排序
public static readonly Y_CORRECT:Number = Math.cos(-Math.PI / 6) * Math.SQRT2;
public static isoToScreen(p: Vec3):Vec3
{
const sp: Vec2 = new Vec2();
sp.x = p.x - p.z;
sp.y = p.y * Y_CORRECT + (pos.x + pos.z) * 0.5;
sp.z = (p.x + p.z) * 0.866 - p.y * 0.707;
return sp;
}
你这个是打算做什么游戏?
类似江南百景图
没那么复杂,2D遮挡仅限于屏幕上的像素y轴