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