我一直在为我正在开发的基于块的游戏(想想泰拉瑞亚)开发照明系统,但我对其中的一点有点难过。当一个块被更新时,它的亮度级别也会根据其相邻(相邻)块的亮度级别进行更新。
现在考虑这种情况:玩家在地面上挖了一个洞,将地球深处的一个方块暴露在太阳下。这使它的亮度等级为 16(满分为 16),其邻居的亮度等级为 15。但是,如果玩家再次填充洞,该块将保持 16 的亮度等级。我的第一个想法是“审核“当一个街区的光照水平通过检查它与它的邻居没有超过一个单位的差异来更新时,但事实证明这是无效的。
我能想到的唯一解决方案是专门检查放置的方块是否暴露在阳光下,如果是,则将其下方方块的光照级别更新为 16 分中的 15 分。但是,这对于修复在某些情况下会出现问题,并且相邻块由于其相邻块而无法降低亮度。也许我只需要退后一点,再看看这个问题,但我想我可能会在此期间发帖。有没有人有关于如何解决这个问题的建议?