gpt4 book ai didi

Java for 循环未运行完整循环

转载 作者:行者123 更新时间:2023-12-01 11:12:55 25 4
gpt4 key购买 nike

我不确定这是否是我的 for 循环或矩形位置的问题,但我设置了一个断点并使用调试绘制来绘制矩形,它们看起来是正确的。

public void onAction(String name, boolean value, float tpf) {
if(name.equals("ShowInventory")){
if(!value){
if(Statics.s_ShowInventory == true){
Statics.s_ShowInventory = false;
}else{
Statics.s_ShowInventory = true;
}
}
}

if(name.equals("RightClick") && Statics.s_ShowInventory == true){
Vector2f mousePos = screen.getMouseXY();
for(int i = 0; i < 40; i++)
{
if(Main.inventory.inventorySlots[i].rect.Contains(mousePos)){
System.out.println(Main.inventory.inventorySlots[i].slotNumber);
}
}
}
}

发生的情况是唯一写入控制台的矩形是第一个矩形。我想要发生的是每次右键单击为 true 并且 boolean 值为 true 时,循环遍历矩形列表并找出哪个包含 mousePos。单击该矩形时,控制台中仅出现“0”,因此我知道我没有得到任何其他库存槽编号重叠。

可能发生的另一件事是循环可能未完全运行,这将是我的单击方法中的问题。

   public float x;
public float y;
public float width;
public float height;

public Rect(float x, float y, float width, float height){
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}

public boolean Contains(Vector2f pos){
if(pos.x > x && pos.x < width && pos.y < height && pos.y > y){
return true;
}
else
return false;
}


Element e = createInventorySlot(i, x, y);
inventoryElements[i] = e;
inventorySlots[i] = new InventorySlot(i, 0, "empty", new Rect(inventoryElements[i].getPosition().x, inventoryElements[i].getPosition().y, iconSize, iconSize));
e.setToolTipText(inventorySlots[i].itemName + " : " + inventorySlots[i].slotNumber + " : " + inventorySlots[i].quantity);
inventory.addChild(e);

最佳答案

for循环一直循环下去。尝试打印每个循环的 if 语句的状态。

for(int i = 0; i < 40; i++)
{
// if(Main.inventory.inventorySlots[i].rect.Contains(mousePos)){
// System.out.println(Main.inventory.inventorySlots[i].slotNumber);
// }

System.out.println(Main.inventory.inventorySlots[i].rect.Contains(mousePos));
}

“.Contains”可能有问题,而不是 for 循环。您的“.Contains”可能仅在第一个插槽中进行测试。这可以解释为什么当鼠标位于第一个插槽中时它只能工作一次。另请检查并尝试打印插槽列表本身,以确保您没有第一个插槽的 40 个副本。

关于Java for 循环未运行完整循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32151655/

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