问题描述
我在godot中的for循环遇到问题,希望您能为您提供帮助!
对于我的游戏清单系统,我正在使用for
循环来更新清单中的物品数量。例如,如果我发射了一个箭头,则for
循环将遍历所有库存位置,找到带有箭头的位置,并将数量减少一个,如下所示:
for slot in range(0,inventory_maxSlots):
if (inventory[String(slot)]["id"] == String(item)):
var newAmount = inventory[String(slot)]["amount"] - 1
if (newAmount == 0):
inventory_updateItem(slot,0)
update_slot(slot)
else:
inventory[str(slot)] = {"id": str(item),"amount": int(newAmount)}
update_slot(slot)
这非常有效,除了当我在多个插槽中有成堆的箭头时。例如,如果我有3个插槽,每个插槽填充10个箭头,则在发射1个箭头之后,所有堆叠将减少3个。因此,我最终将得到3个堆叠,每个堆叠7个箭头。如果我有4支箭,那么每支箭减少4支,等等。
我只希望循环开始,找到带有箭头的第一个插槽,将其数量减少1,然后停止。我尝试使用Break
,但它似乎只是在循环遍历所有插槽后才停止循环,而不仅仅是发现它的第一个带有箭头的插槽。
我只学习了几个月的编程知识,所以我可能错过了一些很明显的东西,我将不胜感激!
谢谢。
解决方法
感谢您对此的帮助,现在我已经解决了。你是正确的,休息正是需要的。问题是我在代码的前面有另一个for循环,我也需要添加一个中断。再次感谢!