0
我试图让使用稍微3D精灵这种自上而下的游戏。我希望能够让玩家在任何对象前面或后面行走。AS3 - 关于改变MC的深度到另一个
一样,如果他是在另一对象后面有一定的距离,他会背后动,如果他更接近其他对象的面前,他会在它前面的移动。
有点像那些老街机游戏,像愤怒的街道。
任何想法?
我试图让使用稍微3D精灵这种自上而下的游戏。我希望能够让玩家在任何对象前面或后面行走。AS3 - 关于改变MC的深度到另一个
一样,如果他是在另一对象后面有一定的距离,他会背后动,如果他更接近其他对象的面前,他会在它前面的移动。
有点像那些老街机游戏,像愤怒的街道。
任何想法?
每次玩家移动,你需要评估每个适用项目的y位置和排序Z顺序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;
}
你能解释一下这行对我说:“VAR arrayOfStuff:矢量<的DisplayObject> = new Vector();“我之前从未使用过矢量函数,甚至没有使用过“<>”,所以我不确定它是什么意思。 –
2012-08-16 18:57:01
矢量是一个类型数组。与数组完全相同,但每个元素都是指定类型,在这种情况下是displayObject。您可以轻松地将其更改为var arrayOfStuff:Array = new Array(),其余部分将工作。向量更好的表现是全部(几乎在所有情况下) – BadFeelingAboutThis 2012-08-16 19:47:30