我是一個相當不錯的程序員,我正在爲像XBOX這樣的塊建設遊戲開發Minecraft。我的遊戲中有大約10萬塊,但是當我在我的Xbox上運行它時,我遇到了一些非常糟糕的滯後問題。有一件事我做了這種幫助是使用它們後將所有對象設置爲null,但我仍然有問題。大多數遊戲開發者如何解決這個問題?我想到的只是繪製靠近玩家的方塊,但我認爲使用循環遍歷世界上所有的方塊會讓它減慢甚至更多。C#XNA滯後和幀率問題XBOX 360
1
A
回答
3
你走的是正確的道路,如果可能的話,你絕對只想在附近畫東西。
Quadtrees和octrees是設計用於分別切割2D/3D空間以使得在給定區域中查找對象非常容易的數據結構。聽起來像這是你正在尋找。
您可以使用任何一種,具體取決於您希望「附近」的定義是什麼。如果您想要實現與Minecraft相同的功能,那麼Minecraft所做的就是顯示整個塊的列,這樣您就可以使用四叉樹來管理X/Z座標上的事物,並始終顯示Y上的所有內容。如果您想要要做一個基於3D的附近的定義,那麼你需要一個八叉樹。
這些工作通過使用樹結構對空間進行分區的方式。樹中的每個分支表示可用空間的象限(或八叉樹的八分圓),並且每個後續分支是該象限的象限。因此,深入到特定區域非常容易。樹的葉子保存實際數據,即。構成你的世界的街區。
相關問題
- 1. Xbox 360 XNA HLS流
- 2. 在Xbox 360上通過XNA發佈Thread.SetAffinity和線程問題
- 3. PC XNA遊戲轉換爲Xbox 360 - 巨大的性能問題
- 4. C#XNA低幀率
- 5. XNA 4.0的Xbox問題(困惑)
- 6. OpenSteer on Xbox 360?
- 7. Windows/XBOX 360編程
- 8. C#XNA的Xbox HashSet的元組和
- 9. XNA Xbox 360內容管理器線程凍結繪製線程
- 10. 測試XNA 4.0遊戲在Xbox 360上,而不$ 100到
- 11. 在XBox 360上XNA有一個很好的信號量嗎?
- 12. 爲什麼我不能挽救我在XNA的Xbox 360遊戲?
- 13. 需要幫助轉換我的XNA PC遊戲到Xbox 360
- 14. XNA:如何將遊戲轉換爲與Xbox 360兼容?
- 15. 在XBOX 360上從DVD或CD運行XNA編譯的遊戲?
- 16. UIScrollview幀率問題
- 17. XNA幀率30至60
- 18. Kinect for XBox 360和Kinect SDK 1.5
- 19. XBox 360儀表板插件
- 20. Xbox 360震動隆隆聲?
- 21. 調試Xbox 360遊戲?
- 22. Kinect XBOX 360在虛擬機
- 23. XNA 4.0 - 使用spriteBatch和basicEffect滯後
- 24. xbox 360 kinect光束角度問題與財產變化
- 25. C++ - SDL:限制幀率問題
- 26. 確定XNA遊戲滯後
- 27. Silverlight/XNA動畫滯後
- 28. C#Winform/XNA問題
- 29. Unity3d Time.deltaTime和幀速率問題
- 30. Box2D和過剩。幀率問題
不想投票結束,但是這可能會在gamedev.stackexchange上得到更好的答案。 –