使用for循环查找数组列表中的第一个空插槽

时间:2017-07-22 14:53:13

标签: java for-loop graphics inventory

我正在尝试为我的游戏制作一个库存,我有两个问题,我无法弄清楚如何修复。其中一个问题是插槽似乎位于同一位置,我希望有25个像素的空间,另一个问题是游戏当时只显示一个插槽而不是所有插槽。
请记住,我不是一个优秀的程序员。

这是我的代码:

public void loadInventory(Graphics g){
    if(item != null){
        for (int i = 0; i < slot.length; i++){
            if (slot[i] == null) {
                slot[i] = "";
                break;
            }
        }
    for (int i = 0; i < slot.length; i++){
            if (slot[i] != null){               
                g.drawString(item.getName() + ": " + itemGroup.size(), 400, 100 + (i * 25));
                break;
            }
        }
    }
}

2 个答案:

答案 0 :(得分:0)

此处未向该方法提供项目,而是提供字段:

public void loadInventory(Graphics g){
    if(item != null){

因此,您每次调用方法loadInventory()时都会覆盖该项目 更改方法,以便接受数组或更好的Item列表:

public void loadInventory(Graphics g, List<Item> items){

并使用此列表绘制它们:

for (int i = 0; i < slot.length; i++){
        if (slot[i] != null && items.get(i) != null){               
            g.drawString(items.get(i).getName() + ": " + itemGroup.size(), 400, 100 + (i * 25));      
        }
    }
}

并删除终止循环的break

答案 1 :(得分:0)

删除break语句 - 它们停止所有代码的执行,并且不允许其余的逻辑跟随。

你也不需要额外的声明。

function textWidth() {

    var TextDiv = document.getElementById("link-menu");
    var txtWidth = (TextDiv.clientWidth + 1);
    document.getElementById("underline").style.width = txtWidth + 'px';
}
function textWidthInitial() {

    document.getElementById("underline").style.width = '0px';
}