我正在尝试制作这个使用略微 3D 精灵的自上而下的游戏。我希望能够让玩家走在他遇到的任何物体的前面和后面。
就像,如果他在另一个物体后面一定距离,他会在它后面移动,如果他更靠近另一个物体的前面,他会在它前面移动。
有点像那些古老的街机游戏,比如愤怒的街道。
有任何想法吗?
我正在尝试制作这个使用略微 3D 精灵的自上而下的游戏。我希望能够让玩家走在他遇到的任何物体的前面和后面。
就像,如果他在另一个物体后面一定距离,他会在它后面移动,如果他更靠近另一个物体的前面,他会在它前面移动。
有点像那些古老的街机游戏,比如愤怒的街道。
有任何想法吗?
每次玩家移动时,您都需要评估每个适用项目的 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;
}