我很好地創建了我的2維重新創建的我的世界的Java。我知道這可以做得很好,youtube上的orange451激勵我嘗試並做到這一點。我從文本文件加載地圖上的所有塊,當遊戲加載時,它將文本文件中的所有塊添加到ArrayList中。我創建了一個算法來計算遊標在遊戲中的塊的索引,並添加了一個MouseListener,以便當我單擊它時,將用空氣塊代替塊(基本上銷燬塊)。爲了替換ArrayList中的塊,我使用了ArrayList set(index,obj)方法。從理論上講,它應該是正確的,它在某種程度上是確實的。唯一的問題是,它還會在幾個街區外的地圖上創建一個黑色空間。這非常令人沮喪,特別是因爲我到目前爲止。其他信息:我需要一種方法來替換ArrayList中的對象,或者更好的方法來實現它,因爲我的碰撞檢測方法也使用ArrayList來檢測塊位置。請幫幫我!我不能張貼圖像,但是它將塊設置爲空氣紋理,但是在它附近創建了一個黑色正方形(數組列表中的間隙?)。因爲那裏有太多的代碼後,繼承人對整個項目的源代碼:Blockworld 2D Source我的世界2d修改:構建和銷燬塊問題
2
A
回答
4
你這個苦苦掙扎,因爲知道他們的協調對象的ArrayList是代表這個二維結構的瘋狂方式。它是無序的 - 你可以反轉或洗牌你的ArrayList,它會繪製相同的。它有O(N)更新,因爲您必須在ArrayList中搜索適當座標的對象,然後才能替換它。它可以有多個具有相同座標的對象。它可能處於可見座標根本沒有相應對象的狀態 - 這就是您在這裏遇到的情況。
請幫我
確定。從字節的二維數組(不是ArrayList)開始。它允許你256種區塊,並且讓你的玩家可以在沒有經常分配內存的情況下挖掘你的瘋狂。爲了繪製世界,遍歷可見的座標和映射字節到位圖或類似的地方。
另外:2D Minecraft已經存在。它被稱爲Terraria。
相關問題
- 1. 2D世界設計問題
- 2. 創建2D世界
- 3. 在3D OpenGL世界中創建2D界面的問題
- 4. 問題與Tkinter和銷燬
- 5. X11和遠程DISPLAY的問題 - 世界何時改變了我?
- 6. 重複2D世界
- 7. 我的世界1.8 mod紋理問題
- 8. 構建2D世界的自定義組件
- 9. WPF中的2D世界
- 10. 構建世界時鐘
- 11. 無法加載我的世界,加載架構問題://architect.js
- 12. 如何在銷燬後修復我的貓頭鷹滑塊
- 13. 會話銷燬/註銷奇數問題
- 14. 關於android銷燬和重新創建活動的問題
- 15. 2D世界,大規模的世界探索教程?
- 16. 更改我的世界中的「SuperFlat」世界發電機
- 17. 銷燬和重建指令
- 18. 銷燬和重建FragmentPagerAdapter
- 19. 創建和銷燬線程
- 20. 銷燬和重建Singleton iOS
- 21. 構建Android用戶界面修改
- 22. 我的世界修改提供一個Missingtexture錯誤
- 23. CSS「2D」邊界問題
- 24. 如何在3D世界中創建塊?
- 25. 銷燬libtrace_out_t數組的問題*
- 26. 銷燬會話中的問題
- 27. Android中的銷燬活動問題
- 28. 2D世界中的本地化
- 29. 渲染3D世界中的2D精靈?
- 30. Java中2D/3D世界的向量
發佈代碼段比發佈圖片更有用。 – Juvanis 2012-02-17 07:58:52
請發佈您的代碼(或[SSCCE](http://sscce.org/)) – Marcelo 2012-02-17 08:00:10
如果您在從列表中刪除元素時遇到問題,請發佈實際從列表中刪除元素的代碼部分。發佈你用來渲染圖像的代碼不會幫助你獲得任何地方。 – Marcelo 2012-02-17 09:46:30