我正在製作一款2D自上而下的生存遊戲,最高精靈的精靈數量爲100個精靈。 當我使用隨機生成他們的矢量位置偶爾我會得到一些重疊之間的精靈。存儲100個矢量XNA
因此,爲了解決這個問題,我將存儲一些預先定義的位置。
問題
所以我的問題是什麼是存儲這些的最佳途徑。最初我打算將它們存儲在一個數組中,但是我認爲將它們存儲在一個文本文件中並在遊戲開始時讀取它們會是一個更好的解決方案。
我是一個初學者,所以如果任何人都可以對此提出任何意見,將不勝感激。
非常感謝
我正在製作一款2D自上而下的生存遊戲,最高精靈的精靈數量爲100個精靈。 當我使用隨機生成他們的矢量位置偶爾我會得到一些重疊之間的精靈。存儲100個矢量XNA
因此,爲了解決這個問題,我將存儲一些預先定義的位置。
問題
所以我的問題是什麼是存儲這些的最佳途徑。最初我打算將它們存儲在一個數組中,但是我認爲將它們存儲在一個文本文件中並在遊戲開始時讀取它們會是一個更好的解決方案。
我是一個初學者,所以如果任何人都可以對此提出任何意見,將不勝感激。
非常感謝
是它們存儲在一個CSV(逗號分隔值)文本文件,或者如果你想使用一個數據庫,但我會推薦前者。數據庫存儲聽起來像是在你的情況下矯枉過正。在啓動時,您可以將值加載到數組中。如果你不這樣做,遊戲每次獲得價值都會滯後。您只需要持久存儲的文本文件,然後使用該數組即可。
希望這可以幫助你解決問題!
爲什麼你不檢查精靈的位置是否重疊?如果精靈不經常重疊,這應該不會增加太多的計算,並增加隨機性,然後固定的位置模板。
你在類中爲具有精靈的實體做什麼是添加一個公共的矩形,你可能已經使用矩形將它們繪製到屏幕上。通過公開這個可以讓你在生成實體的類中做這樣的事情。
if (addSprite)
{
Entity newEntity = new Entity(random position);
foreach (Entity e in entityList)
{
if (newEntity.rectangle(Intersects(newEntity.rectangle))
{
//give a new position to newEntity and run this loop again
}
else
{
entityList.add(newEntity);
}
}
這會被視爲一種蠻力方法嗎?有了一個小視口和許多精靈,這可能會導致很多循環運行? –
感謝您的回答!這是我實施的解決方案:) –