我正在努力制作这款自上而下的游戏,它使用了轻微的3D精灵。我希望能够让玩家走在他前面和后面的任何物体前面。
就像,如果他在另一个物体后面一定距离,他会移动到它后面,如果他更靠近另一个物体的前面,他就会移动到它前面。
有点像愤怒的街道那样的旧街机游戏。
有什么想法吗?
答案 0 :(得分:0)
每次玩家移动时,您需要评估每个适用项目的y位置,并根据该位置对z-order / childIndex进行排序。
所以如果您的所有对象都是'走在后面/前面,你的角色在一个叫做前景的父精灵中:
function sortZ(){
var arrayOfStuff:Vector<DisplayObject> = new Vector<DisplayObject>();
var i:int;
for(i=0;i<foreground.numChildren;i++){
arrayOfStuff.push(foreground.getChildAt(i));
}
arrayOfStuff.sort(sortArrayByY);
for(i=0;i<arrayOfStuff.length;i++){
foreground.setChildIndex(arrayOfStuff[i],i);
}
}
function sortArrayByY(valA:DisplayObject, valB:DisplayObject):int {
if(valA.y == valB.y) return 0;
if(valA.y > valB.y) return 1;
return -1;
}