所以我有多个列表来跟踪 2D 游戏中的对象,但如果这些对象离开屏幕,我想删除这些对象,以便它们不再更新。我下面的内容对我有用,但这不适用于其他语言。通常我必须创建另一个“销毁列表”来保存我想要销毁的对象,然后再次循环以删除它们,因为在迭代时无法从列表中删除对象而不会出现一些明显的故障。
Ruby 只是在执行此操作时没有显示任何可见的故障,还是 Ruby 的数组在从列表中删除多个可能的对象时工作方式不同,而它仍在迭代?
objects = []
objects.each{|o| o.withinBounds ? o.update : objects.delete(o)}