对于一个大学学期项目,我正在研究一个使用等距显示的图形 roguelike(我知道术语:P 的矛盾)。我想弄清楚的是,由于绘制所有瓷砖非常昂贵且不必要,我想找出一种相对快速的算法来确定应该绘制哪些瓷砖以适合 NxMpx 窗口,因为瓷砖图形是 XxYpx。
我没有为此进行平滑滚动,所以这不是问题。我也不担心完美 - 一点不必要的抽奖很好,我只是不想绘制大量不会出现在游戏中的不必要的瓷砖。
你需要考虑两个概念:屏幕空间和世界空间。这些在 3d 引擎中非常重要,但它们适用于除了最简单的游戏之外的所有游戏。在等距引擎中,您的世界空间是一个 2d 瓷砖阵列。
因此,您首先要寻找一种在这两个坐标空间之间进行隐蔽的方法。完成此操作后,很明显屏幕空间会以 45 度角的矩形映射到世界上。您可以为此确定一个公式,但这仅在您尝试确定世界空间的哪个部分可见时才重要,因此您只模拟该区域中的怪物(在 8 位控制台上需要效率,而在现代 PC 上可能不需要! )。当涉及到实际渲染时,您实际上并不需要确定世界的这个可见区域,因为它隐含在您将图块渲染到屏幕上的方式中:-
其他提示:-
无论如何,这已经足够了,希望它对您有所帮助,并且您的项目进展顺利。