| 
 
| 赞 | 95 |  
| VIP | 149 |  
| 好人卡 | 1 |  
| 积分 | 18 |  
| 经验 | 73418 |  
| 最后登录 | 2025-10-20 |  
| 在线时间 | 2526 小时 |  
 Lv3.寻梦者 
	梦石0 星屑1796 在线时间2526 小时注册时间2010-10-12帖子1456 
 | 
| 
本帖最后由 刺夜之枪 于 2016-1-5 10:18 编辑
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  
 我知道如果是
 for i in 0..arr.size
 arr.erase(xxx) if yyyy
 end
 的话会删除后arr的size会变短然后跳过一些内容
 
 
 但是不知道.each do会这样吗?
 
 (楼主语文表达能力不好,见谅)
 
 
 
 
 算了,我换个问题吧,这个可能更容易懂一些:
 
 在下想删掉地图上所有名字为nil的事件
 
 $game_map.events.values.each do |event|
 if event.name == "nil"
 $game_map.events.delete(event.id)
 end
 end
 $scene = Scene_Map.new
 
 
 然而这样写没什么卵用,总是误删一些其他事件
 BTW: 已经define了event.name
 
 
 更新,问题已经解决
 
 
 
 list = []
 $game_map.events.keys.each do |id|
 if $game_map.events[id].name == "nil"
 list.push id
 end
 end
 list.each do |id|
 $game_map.events.delete(id)
 end
 $scene = Scene_Map.new
 
 
 
 
 
 
 
 
 
 但还是希望有人能讲解一下
 arr.each do 中 arr.erase(xxx) 会不会跳过某些内容
 
 
 | 
 评分
查看全部评分
 |