我已经使用 Java 编写了 2D 等距引擎的开端。我已经掌握了大部分基础知识,例如地图上的平铺顺序和对象深度排序。但是,我遇到了一个问题,如果不让我的方法变得非常混乱,我似乎无法解决这个问题。
问题是,在我的等距世界中,当对象基础所在的图块在屏幕上呈现时,每个对象都会被呈现。但是,某些对象具有很大的高度(例如建筑物),可以从未渲染的屏幕外区域延伸到渲染的屏幕区域,我无法检测到这一点,因为我的引擎到目前为止依赖于对象基础呈现图像。
我的问题是,我如何检测一个具有大高度值的对象应该存在于渲染区域中,而它的基础位于屏幕外区域?我真的不想只渲染整个地图(包括屏幕外区域),因为这非常占用 CPU,所以我正在寻找一种算法或方法来检测这个有问题的区域。
编辑:更新了问题以直观地表示以下问题。