Project1
标题:
请问几个场景 类问题
[打印本页]
作者:
kvkv97
时间:
2015-7-20 23:13
标题:
请问几个场景 类问题
本帖最后由 RyanBern 于 2015-7-21 09:26 编辑
问题1:把Scene_Title里面的$game_player.moveto($data_system.start_x, $data_system.start_y)改成$game_player怎么会出现 人物移动的 时候产生找不到Game_Player类的方法encounter_count?
问题2:Game_Player类没有初始化,怎么能写“$game_player = Game_Player.new”语句?
问题3:把Scene_Map里面的unless $game_temp.player_transferring / break/ end注释掉,会出现找不到文件Data/Map000.rxdata?
作者:
芯☆淡茹水
时间:
2015-7-21 08:48
1, 角色没执行 moveto ,遇敌计数就没有初始化,为 nil . 当角色移动增加遇敌计数时报错。
2,类一定要初始化么? 再说 Game_Player 有初始化,是其父类 Game_Character 。
3,unless $game_temp.player_transferring / break/ end 不在角色场所移动的情况下,跳出循环。
如果没有这一句限制跳出循环的话,紧接着执行下面一句 transfer_player 场所移动,初始的 $game_temp.player_new_map_id 新的地图ID为 0 ,
在执行场所移动并设置地图时,找不到文件:第 0 号地图的 rxdata 存档。
作者:
RyanBern
时间:
2015-7-21 09:00
没看懂第一个问题什么意思。
第二个问题,提问的方式有误,应该为'没有在Game_Player里面看到initialize方法的定义'。并没有任何一本教程说明,不写initialize方法的类就无法生成实例,这个是楼主的错觉。
RUBY 代码
复制
class
A
end
a = A.
new
# 合法
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的这张地图,显然,没有这张图,所以会报错。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1