我想提出一个2D瓷砖基于游戏在Java中,我想知道什么是最好的方式来存储世界的项目了。在过去,我一直使用数组的世界同样大小,但我想使真正的大的世界,我知道一个事实,这将是一个坏主意。所以我只是想知道最好的方法是什么?项目在一个基于2D瓷砖游戏
回答
如果如定义瓷砖的类型由INT,你可以使用一个位的它表明,如果有一个项目。 你在用x坐标排序的列表存储项目本身(如果x坐标是一样的,不是使用y坐标为第二顺序属性)。
这种方式可以检测,如果有图块上的速度非常快(一个项目O(1)和比List<Item>
只搜索,如果有一个项目。在列表中,您可以使用二进制搜索(第一相关的x坐标,并在所有项目的子列表中具有相同的x坐标使用二进制搜索所需的y坐标)O(log(n)) [n =项数]
如果你要节省内存,我会考虑使用Elementar公司的数据类型指定瓷砖(例如int
)和存储您的世界如在int[][]
。
项目,以及这些(X,Y)的列表坐标应该可以正常工作了真正巨大的世界也是如此。
即使阵列的99%设置为null,它仍然占据尽可能多的内存,如果他们都满了,所以我希望的东西高效 – user2103959 2013-03-09 10:15:18
存储列表使用容器之一java.util中如java.util.ArrayList或java.util.List – uba 2013-03-09 10:17:58
- 1. 基于Android瓷砖的游戏
- 2. 清除基于瓷砖的as3游戏瓷砖
- 3. 随机产生2d瓷砖游戏湖
- 4. 2D游戏瓷砖的碰撞检测
- 5. 瓷砖游戏上的重复瓷砖
- 6. cocos2d,瓷砖地图游戏
- 7. Pygame的相机跟随在2D游戏瓷砖
- 8. 在益智游戏中移动瓷砖
- 9. 在Match3游戏中交换瓷砖
- 10. 的Java 2D游戏瓷砖渲染优化
- 11. 检查2D平台游戏中带有瓷砖的碰撞
- 12. 没有瓷砖的2D游戏中的碰撞检测XNA
- 13. Java瓷砖游戏 - 碰撞检测
- 14. 平台游戏设置瓷砖
- 15. 社交游戏地图瓷砖存储
- 16. 2D瓷砖相机?
- 17. 在线多人游戏中存储基于大型瓷砖的地图
- 18. Java - 在基于瓷砖的游戏中创建洞穴时遇到问题
- 19. 碰撞检测在瓷砖基础游戏仅适用于阵列
- 20. 没有瓷砖增量,在益智游戏中瓷砖的大小增加
- 21. 蛇游戏 - 为什么蛇跳过一个瓷砖?
- 22. 瓷砖基于博弈论
- 23. XNA瓷砖基于碰撞
- 24. C#基于文本的游戏项目
- 25. 基于瓷砖的cocos2D-iPhone游戏的最佳Z排序方法?
- 26. 基于2d瓷砖的游戏设计,如何绘制带有视口的地图?
- 27. 我第一次尝试制作一个简单的基于瓷砖的java游戏
- 28. 统一2D:可交互的瓷砖
- 29. 在2D游戏
- 30. Struts 1.3与瓷砖,重新加载4个瓷砖中的一个瓷砖
的java.util.List或java.util.Map这取决于你想怎么看东西 – MadProgrammer 2013-03-09 10:12:01