我正在用Java实现像Notch的“打破塔”这样的项目。 我有大部分写的,但是我对z顺序有困难。
当物体围绕中心“旋转”时,它们仍然严重地相互重叠。例如,背景中的树可能会在其“前面”的树顶上绘制。
任何人都可以建议一种可以帮助我解决问题的算法吗? ...或者可能有助于解释z排序的完整概念,甚至可能提供另一种解决方案。
感谢
答案 0 :(得分: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++)
所以,这样,你的对象应该是一个在另一个之前,而不是一个在另一个之上。
希望它有所帮助, 麦克