0
我正在創建一個獨立城市建築遊戲,我試圖編寫一個系統來檢查供水是否已在4X4的集合瓷磚內構建。AS3數組TileMap檢查?
var blankMap: Array = [{0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 2, 0, 0, 2, 0, 0, 2},
{0, 0, 8, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 2, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}];
public function checkWater(mY, mX): void {
// LEFT
if (blankMap[mY][mX - 1] == 8) {
trace("resource found left");
}
if (blankMap[mY][mX - 2] == 8) {
trace("resource found left");
}
if (blankMap[mY][mX - 3] == 8) {
trace("resource found left");
}
if (blankMap[mY][mX - 4] == 8) {
trace("resource found left");
}
}
// RIGHT
if (blankMap[mY][mX + 1] == 8) {
trace("resource found right");
}
if (blankMap[mY][mX + 2] == 8) {
trace("resource found right");
}
if (blankMap[mY][mX + 3] == 8) {
trace("resource found right");
}
if (blankMap[mY][mX + 4] == 8) {
trace("resource found right");
}
該系統的工作原理,但只適用於東,南,西,北。有沒有更簡單的方法來做到這一點?它只會檢查瓷磚地圖上1,2,3和4個瓷磚是否包含供水....這是瓷磚地圖上的數字8。 mY和mX是被點擊的圖塊的位置。
任何建議都會很棒。我基本上需要能夠檢查NUMBER 8而不是0的瓦片區域/瓦片地圖(4X4最大距離),這意味着瓦片是草地。這聽起來很容易,我確信它是這樣,我無法理解這個數學。謝謝。
對於循環,while循環,遞歸函數將所有的工作。 [文檔for循環](http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3_Flex/WS5b3ccc516d4fbf351e63e3d118a9b90204-7fcf.html) – DodgerThud
而就提示,你應該檢查是否你走出界限在你的功能中操作的座標。在你的示例代碼中,如果你的地圖只有7的高度,但你總共運行了8個(開始座標爲+1),那麼當你嘗試檢查南或北時,你總是會遇到錯誤。 – DodgerThud