- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个在玩《我的世界》时使用的程序,它是一个模拟地板的网格,我想要做的是能够点出障碍物和灯光,并计算哪些“ block ”可以获得足够的光线。它是一个规划工具,因此您可以了解地板的概况,并通过足够的照明来制作漂亮的东西。
我可以点出障碍物和光线,创建正确的分布,但我的问题在于我想用这个程序解决的问题的本质,我搞砸了很多,必须重做一切,所以我希望能够移除灯光,当然还有灯光发出的光。
点出灯光时进行灯光计算的代码。
public void changeLightUp(int light)
{
//no light left, return
if(light == 0)
return;
//not a source or block, change light
if(type == 0)
{
//light is greater, return
if(lightLevel >= light)
return;
lightLevel = light;
}
//solid block, ignore
else if(type == 1)
return;
if(xCoord != main.gridSizeX - 1)
main.grid[xCoord + 1][yCoord].changeLightUp(light-1);
if(xCoord > 0)
main.grid[xCoord - 1][yCoord].changeLightUp(light-1);
if(yCoord != main.gridSizeY - 1)
main.grid[xCoord][yCoord + 1].changeLightUp(light-1);
if(yCoord > 0)
main.grid[xCoord][yCoord - 1].changeLightUp(light-1);
}
所以它的作用是:我检查是否还有剩余的光(该方法是递归的,所以我将光发送到下一个 block ,减1),然后检查它是否是“地板” block ,只要新的光芒更大 - 更新。如果它不是障碍物,我会将光(负 1)发送到四个相邻的 block ,直到一切完成。
我想不出一个好方法来“向后”执行此操作,这不可能是此类问题的第一个问题,所以我确信答案就在那里!但不知道要搜索什么。抱歉,如果答案遍布网络:)
编辑:看来我对实际问题还不够清楚。网格由“ block ”组成,每个 block 都有自己的光照水平。当将光源添加到网格时,它会向其邻居“发射”光,这是通过代码片段中可以看到的递归方法来完成的。问题是,当我删除一个 block 时,我不知道如何以正确的方式删除灯光,简单地计算被源“击中”的 block 很容易,但不会考虑到考虑到附近可能存在其他光源,因此如果我将所有内容都设置为 0,光照水平将会是错误的。希望问题能够解决,再次感谢所有回答我问题的优秀人士<3
最佳答案
我认为有两种解决方案:
lightSourceId
属性。这样,就可以找到所有被你刚刚关闭的光源照亮的方 block 关于java - 正确地逐渐减小网格中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12142488/
我想要一个可以逐渐将页面底部的不透明度从 0 更改为 1 的函数。 我在元素的顶部使用了类似的功能,但我使用的不是淡入,而是淡出。创建它相当容易,但在页面底部使用设置的阈值淡入是一场噩梦。 经过研究,
li 状态是关闭和打开。 闭合:颜色为黑色(没有光照,相互折叠)。 打开:颜色为红色(有光,全视野)。 我希望颜色从两个元素之间的点开始淡化,以表明阴影从轴心开始,直到它们关闭。 $('button'
我的问题很简单: 1)我有一个扩展 JFrame 的主类。 2)该类内部有一个 JPanel,其顶部有一个 BufferedImage。 3)最后还有一个 JButton,我称之为“Fire”..这就
我有这个立方体,我想在延迟 3000 后将其转换为不同的 X 和 Y 点。我无法理解如何在 jQuery 的帮助下做到这一点。这是一个JS Fiddle .下面是代码。 JS // code for
我们如何向背景图像添加黑色阴影,阴影从不透明度 1 开始逐渐降低到不透明度 0,在图像的所有 4 个边上? (至少 50 像素值的“降低阴影不透明度”。box-shadow 仅提供少量不透明度逐渐下降
我是一名优秀的程序员,十分优秀!