所以,我正在製作一款遊戲,並且遇到了問題。我需要一些方法來高效地獲取位於3D圖形中的對象。從3D圖形獲取對象的最有效方式
但問題是,他們都可以涵蓋多個值來獲得。因此,例如,值'foo'可能覆蓋x範圍400-500,y範圍10-20和z範圍30-60。
我想知道是否有更高效的方式來存儲和獲取這些然後通過將它們存儲在一個數組中並搜索它們,我不希望這樣做,因爲這些值很大。
這是爲選擇一個遊戲的生物羣系。但是,我選擇將此放在GameDev上,因爲這似乎更像是一個數據結構問題。然而,我可能是錯的,如果我真的很樂意關閉它並在那裏打開它。
有沒有其他方法可以做到這一點?
public static Tile getTile(int height, int moisture, int temperature) {
for(Tile tile : tileList){
boolean isTile = true;
if(!(tile.heightMax > height && tile.heightMin < height)){
isTile = false;
}
if(!(tile.temperatureMax > temperature && tile.temperatureMin < temperature)){
isTile = false;
}
if(!(tile.moistureMax > moisture && tile.moistureMin < moisture)){
isTile = false;
}
if(isTile){
return tile;
}
}
}
這是我的搜索方法。正如你所看到的,我使用一個列表來存儲所有的圖塊,並搜索符合條件的圖塊。有沒有其他的方法可以儘可能快地用很多瓷磚來做到這一點?
哈希表非常擅長提供對象的快速查找,但是我對數據的結構有點遺憾,真的可以說這是一個可行的解決方案。你有什麼嘗試? –
執行不明確;當你說「只需將它們存儲在數組中」時,你如何存儲它們?顯示如何存儲值的代碼片段可以幫助用戶更好地回答問題。 –
我試過使用數組來存儲和查找。這是爲地圖選擇生物羣系,而每個生物羣落具有高度,溫度和溼度水平。我希望地形的生成儘可能快,所以我需要一些方法來使生物羣落快速達到給定的高度,溫度和溼度。如果您需要更多信息,請詢問。我不擅長給你們可能需要的東西,對此感到抱歉。 – chbachman