Java 布尔值设置为true,但从未到达将布尔值设置为true的行

Java 布尔值设置为true,但从未到达将布尔值设置为true的行,java,loops,debugging,boolean,jmonkeyengine,Java,Loops,Debugging,Boolean,Jmonkeyengine,正常水平(图1) 正方形为平铺,红色圆点为顶点(图2) 我想做的是一组可以被破坏(移除)的积木(灰色的东西),这样水就可以通过它们。如图所示,这在大多数情况下都有效,一些砌块已经被移除,水正从缝隙中流过。问题是它不是一直都能工作。有时,当一块石头被移走时,水不能填满缝隙,水里会有一个洞 代码 public类WaterManager(){ //级别是贴图,它是包含瓷砖网格和水的父级 公共节点级; 网格水=新网格(); 几何地理; 向量3f[]顶点; //使用细分使网格更加详细,细分为2意味着每

正常水平(图1)

正方形为平铺,红色圆点为顶点(图2)

我想做的是一组可以被破坏(移除)的积木(灰色的东西),这样水就可以通过它们。如图所示,这在大多数情况下都有效,一些砌块已经被移除,水正从缝隙中流过。问题是它不是一直都能工作。有时,当一块石头被移走时,水不能填满缝隙,水里会有一个洞

代码
public类WaterManager(){
//级别是贴图,它是包含瓷砖网格和水的父级
公共节点级;
网格水=新网格();
几何地理;
向量3f[]顶点;
//使用细分使网格更加详细,细分为2意味着每个瓷砖(立方体)有9个顶点,如图2所示
公共int细分=2;
//x轴和z轴上的顶点数量
int x顶点,zVertices;
//一块瓷砖大小,我的情况是10块
浮动立方;
//x轴和z轴上的瓷砖数量
int xCubes,zCubes;
列表三角形=新的ArrayList();
List emptyCubes=new ArrayList();
List newEmptyCubes=newArrayList();
Dictionary tiles=新哈希表();
公共无效循环(矢量3F startPos){
newEmptyCubes.clear();
清空立方体。清除();
布尔循环=真;
List temp=new ArrayList();
//这是第一次检查,以获得所有应注满水的连接块
//包括单击的块
GetConnectedEmptyTiles(startPos、NewEmptyCube);
//如果有超过1个块需要填充,则循环所有块
//让那些连接到那些应该充满水的
如果(newEmptyCubes.size()>1){
做{
用于(矢量3F多维数据集:newEmptyCubes){
GetConnectedEmptyTiles(多维数据集,温度);
}
emptyCubes.addAll(newEmptyCubes);
newEmptyCubes.clear();

如果(temp.size(),您最好使用调试器逐步完成此操作,这样您就可以在每个步骤中看到每个变量的值。请发布一个-也就是我们可以编译和查看的完整代码。我们不知道如何定义
tiles.get(tile.water)
(是
boolean
还是
boolean
?),或者是什么
tiles.get
是什么(是否保证为相同的输入返回相同的对象?)等。在删除大量相关代码的情况下发布一点代码是没有用的。@ErwinBolwidt我已经编辑了这篇文章,所有用来制作水的代码都显示出来了,除了顶点是如何制作的以及在什么位置,但这是不相关的。我认为编译不会起作用,因为代码使用了一些在f中构建的jMonkeyEngines缺少了一些与此无关的特性和其他内容。@DawoodSaysRestatemonica我已经这样做了,我发现问题与我所想的有所不同,问题在于,尽管一个磁贴有一个tileObj,或者当GetConnectedEmptyTiles()调用时,它仍然变为水,或者水以某种方式被设置为true。您最好使用调试器逐步完成此操作,以便在每一步都可以看到每个变量的值。请发布-即,我们可以编译和查看的完整代码。我们不知道如何定义
tiles.get(tile.water
)(它是一个
boolean
还是
boolean
?),或者
tiles.get
是什么(它保证为相同的输入返回相同的对象吗?)等。在删除大量相关代码的情况下发布一点代码是没有用的。@ErwinBolwidt我已经编辑了这篇文章,所有用来制作水的代码都显示出来了,除了顶点是如何制作的以及在什么位置,但这是不相关的。我认为编译不会起作用,因为代码使用了一些在f中构建的jMonkeyEngines缺少了一些与此无关的特性和其他内容。@DawoodSaysRestatemonica我已经这样做了,我发现问题与我所想的有所不同,问题是,尽管一个磁贴有一个tileObj,或者在调用GetConnectedEmptyTiles()时,它似乎有一个tileObj,但它仍然变为水,或者不知何故,水被设置为true。