簡體   English   中英

Flash AS3數組和排序

[英]Flash AS3 Array and Sorting

我的問題是我有一個等距網格,僅基於 X、Y 值:每次單擊按鈕(例如道路)時,都會將此項推送到數組()

 //
 addChild(roadTiles);
 gameAssets.push(roadTiles);
 arrangeAssets();
 //

我的 arrangeAssets 方法只檢查數組“沒有意義的發布,因為它在大多數時間都失敗了。一般來說,一些項目更新但不是全部。所以我希望有人有一個解決方案來檢查 X,Y 值然后設置數組的 setChildIndex。我看過,不斷被推薦給我不感興趣的第 3 方 as3 引擎,因為我想自己制作並有更好的理解。

在此處輸入圖像描述

或者這是不可能的,因為我只使用 X,Y 網格

    arrangeAssets();{
var i:int = gameAssets.length;
while(i--){
    if (getChildIndex(sortedItems[i]) != i) {
        gameAssets.sortOn("y", Array.NUMERIC);
        setChildIndex(gameAssets[i], i);
    }
    }

我只將草網格頂部的項目添加到數組中。

假設最左邊的點是x: 0, y:0瓦片相互覆蓋,從高x和低y到低x和高y值。

我會添加一個weight變量(你喜歡怎么稱呼它),然后從(totalx - x) * y計算它

這將使最頂角的值為 0,而最底角的值為最高。 每一行(實際上是對角線)都是一樣的。

然后按weight排序,您將在相對 z 堆棧中得到一個項目列表。

這並沒有真正解決 setchildIndex,因為那里不能有兩個項目。 一種破解方法是刪除所有內容並將它們重新添加到訂單中。 (你可以有一個臨時孩子,你將其添加為孩子,這樣你就不必刪除孩子,因為它是自動完成的)

我從http://www.kirupa.com/developer/isometric/depth_sorting.htm找到了這張顯示weight_y的圖片

在此處輸入圖像描述在此處輸入圖像描述

_y 是相同的,因為(totalx - x) * y水平值相同

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM