gpt4 book ai didi

java - 在瓷砖水平上阻挡光线

转载 作者:行者123 更新时间:2023-12-01 04:58:16 27 4
gpt4 key购买 nike

我正在用Java制作一个平铺(平铺大小为16px)关卡滚动游戏。现在我正在处理照明系统。我使用每个灯光(黄色 block 和瓷砖)的代码计算了灯光梯度(如图所示):

visMap = new int[level.getWidth() * level.getHeight()];

int lighted = 0;

for (int x = 0; x < level.getWidth(); x++) {
for (int y = 0; y < level.getHeight(); y++) {
double xd = (this.x >> 4) - x;
double yd = (this.y >> 4) - y;

double distance = Math.sqrt(xd * xd + yd * yd);

double p = power * 1.0;
double bright = p - distance;

visMap[x + y * level.getWidth()] = (int) (bright * power);
}
}

现在我正在尝试让方 block 以某种方式阻挡光线(就像在现实生活中一样)。有没有一个好的方法呢?提前致谢,扎普利克

图片:click

最佳答案

递归地传播光。随着每个递归级别减少适当数量的光强度。还要跟踪光线移动的方向。一旦遇到障碍,就停止该递归分支。

关于java - 在瓷砖水平上阻挡光线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13751937/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com