没看懂第一个问题什么意思。
第二个问题,提问的方式有误,应该为'没有在Game_Player里面看到initialize方法的定义'。并没有任何一本教程说明,不写initialize方法的类就无法生成实例,这个是楼主的错觉。
class A
end
a = A.new # 合法
这个是因为不写initialize方法,Ruby会提供默认的构造方法。
但是在这里,还略有不同。因为Game_Party有父类Game_Character,其父类已经定义了initialize方法,如果子类不写的话,默认是调用父类的构造。
第三个问题是因为去掉这一句话之后,游戏就会执行它后面那句话的transfer_player(无论是否合法)。一般来讲,只有当移动标志$game_temp.player_transferring设置为true的时候才进行移动,而移动的目标地图是$game_temp.player_new_map_id。player_new_map_id的初始值是0,所以如果不加判断就执行的话,会加载到地图ID为0的这张地图,显然,没有这张图,所以会报错。 |