如果這個問題太模糊,我還沒有真正構建出任何代碼,但是我的問題是關於如何編寫代碼(可能在Unity3d腳本的C#中,但實際上只是一般的)總戰爭遊戲中動態變化的單位深度/寬度。動態數組深度/寬度代碼
在TW遊戲中,您可以點擊並拖動以將單位從nx2陣型更改爲2xn陣型以及兩者之間的任何內容。這裏有一個視頻(手錶從15秒到30秒):
https://www.youtube.com/watch?v=3aGRzy_PzJQ
我很好奇,一般來講,有關代碼,將允許某人在飛行中交換一個數組的元素,如那。我假設這裏的地層單位是數組中的元素
的話,你可能會開始有一個這樣的數組:
int[,] array = new int[2, 20];
,並用一個這樣的數組結束:
int[,] array = int[20, 2];
但是在兩者之間創建最接近的近似值,最後一行在某些情況下未被填充,然後最後一行的元素將不得不以視覺爲中心,直到列寬達到所有元素的數量行再次相等。
它讓我想起編程問題的一個常見介紹,需要您向控制檯寫一個由*組成的金字塔堆疊起來,並在每行之間添加一個空格的元素,但複雜得多。
大多數較低技術的編隊戰術遊戲如戰禍只是讓你選擇線陣列(2行深)或列陣(2列寬),沒有任何選擇之間的任何選擇,這可能是這是一個有意的設計選擇,但它使得單位運動變得如此尷尬,以至於我不得不假定他們沒有技術限制,所以也許這是一個難題。
你有沒有考慮過使用列表?你不能像你想要的那樣在C#中改變數組。 –
_「我實際上還沒有構建任何代碼」 - 這是關於它的總結。坦率地說,我不認爲嘗試使用_collection_數據結構作爲某種對象的地理佈局模型是個好主意。最好有一個簡單的集合(例如數組或列表),只需_stores_對象,然後讓每個對象保持自己的位置。當你想改變地層時,只需穿過現有的物體併爲它們分配新的位置,即用新物體填充新構造的空間。 –
但是真的,你的問題太廣泛了。許多不同的方式來做到這一點,以及你應該怎樣做的方式,儘可能多的不同意見。 –