赞 | 40 |
VIP | 559 |
好人卡 | 234 |
积分 | 47 |
经验 | 251834 |
最后登录 | 2024-10-11 |
在线时间 | 5240 小时 |
Lv3.寻梦者 (版主) 八宝粥的基叔
- 梦石
- 0
- 星屑
- 4684
- 在线时间
- 5240 小时
- 注册时间
- 2009-4-29
- 帖子
- 14318
|
nil就是空,所有的变量在没有赋值之前都是nil。这里的变量不是指$game_variables这些,而是任意变量如$abc、@abc、@@abc、abc等。它们的初始值都是nil。出现你那样的报错是最常见的报错了,是执行某个方法的主体值为nil。比如- for i in 0..10
- $game_troop.members[i].hp+=1
- end
复制代码 让1-11号敌人的HP都加1,但敌人最多就是8个,没有11个敌人,因此当执行到第9个敌人时,$game_troop.members[8]就是nil,nil不具有hp属性,无法执行hp+=1,于是报错。所以只要- $game_troop.members[i].hp+=1 unless $game_troop.members[i].nil?
复制代码 在不为空的时候才执行hp+=1,就不报错了。 |
评分
-
查看全部评分
|