0

我正在用 Java 实现一个像 Notch 的“破塔”这样的项目。我大部分时间都在写,但我在 z-order 方面遇到了困难。

当对象围绕中心“旋转”时,它们仍然严重地相互重叠。例如,背景中的一棵树可能会绘制在它“前面”的一棵树的顶部。

任何人都可以建议一种可以帮助我解决问题的算法吗?...或者可能有助于解释 z 排序的完整概念,甚至可能提供另一种解决方案。

谢谢

4

1 回答 1

0

我认为您想要恢复的是使用 z 坐标创建一个数组,对数组进行排序,然后将对象转换到它们的位置。例如:

TransformGroup translate(Node node,Vector3f vector){

    Transform3D transform3D = new Transform3D();
    transform3D.setTranslation(vector);
    TransformGroup transformGroup = new TransformGroup();
    transformGroup.setTransform(transform3D);
    transformGroup.addChild(node);
    return transformGroup;
}    
for(int i=0;vec[i];i++)
 translate(Your_Object,new Vector3f(x,y,vec[i]);
//do this while you still have elements in your vector. 
//you may want to set a value, let's say 2500 that  indicates that you ran out of objects
//in that case, you will have for(int i=0;vec[i]!=2500;i++)

因此,通过这种方式,您的对象应该是一个在另一个之前,而不是一个堆叠在另一个之上。

希望它有帮助,迈克

于 2012-10-31T15:43:00.993 回答