我正在用Java编写一个2D等距游戏引擎,用于趣味和练习,而且我已经到了想要找出最佳方式渲染精灵的点为了模拟深度。我对这个主题没有多少了解,但我总是喜欢在使用其他人之前尝试提出自己的解决方案。那么,以下两种解决方案中哪一种更优化?为什么?如果我离得太远,那么以正确的顺序呈现精灵的实际最佳方式是什么?注意 - 我的游戏是自由移动的,例如2D塞尔达而不是Pokemon Red中的网格样式。Java 2D渲染深度点子
我可以使用以深度顺序存储的实体对象的链表。然后,每当实体移动时,将其当前的Y位置与前一个节点和下一个节点进行比较,并在必要时交换位置。然后,重复该过程直到不再需要。 (我不确定Java的链表是如何工作的,但是如果需要的话我可以创建一个自定义列表)
只需要一个实体数组,其长度等于屏幕高度(以像素为单位)。然后当每个实体移动时,只需将其在阵列中的位置改变为等于其在屏幕上的Y位置的位置(或者如果该位置被拍摄,则最近的可用位置)。
哦,我明白了。当你说像素值时,我认为你的意思是像素中的颜色。现在我看到它是如何应用于此的,在这种情况下,我将使用List选项而不是固定数组 –
*“哦,我明白了。”*说实话,当我刚刚阅读答案时, ,我意识到现在已经在编辑中添加了重要的缺失部分。无论如何,你自己都会达成相同的基本理解。 :) –