ITEEDU

15、游戏对象

游戏对象的内容: 

数据库原则上在游戏过程中是不会被写入的,而针对地图上人物的走动等等情况,发生变化的是游戏对象。

在Scene_Title脚本中,会生成各种游戏对象,比如command_new_game的方法就是其中的一个,这个方法是在选择了标题画面中的[新的游戏]的时候被运行的。

# 生成各种游戏对象

$game_temp = Game_Temp.new

$game_system = Game_System.new

$game_switches = Game_Switches.new

$game_variables = Game_Variables.new

$game_self_switches = Game_SelfSwitches.new

$game_screen = Game_Screen.new

$game_actors = Game_Actors.new

$game_party = Game_Party.new

$game_troop = Game_Troop.new

$game_map = Game_Map.new

$game_player = Game_Player.new

和数据库中的$data_xxxx变量相同,这里的$game_xxxx也是全局变量。像Game_xxxx这样的名字应该认识吧,如果不认识,把脚本目录拉到最上面,看到了吗,这里的游戏对象正是上面的那些游戏脚本中定义的类的实例。

游戏对象的内容如下,和数据库的情况不同,这些对象所属的类不是RGSS系统预设,而是在脚本中定义的:

变量                  名称        类

$ game_temp           临时数据    Game_Temp

$ game_system         系统数据    Game_System

$ game_switches       开关        Game_Switches

$ game_variables      变量        Game_Variables

$ game_self_switches  自我开关    Game_SelfSwitches

$ game_screen         画面效果    Game_Screen

$ game_actors         角色        Game_Actors

$ game_party          派对        Game_Party

$ game_troop          军队        Game_Troop

$ game_map            地图        Game_Map

$ game_player         玩家        Game_Player

这些类原则上只提供数据构造,而不具备处理画面或者接受键盘输入的功能,不过Game_Player类可以处理方向键和回车键。

其实上面的这些对象内部进一步包含着另外的类的对象: 

Game_Picture 在 Game_Screen 内部使用

Game_Actor 在 Game_Actors 内部使用

Game_Enemy 在 Game_Troop 内部使用

Game_CommonEvent 在 Game_Map 内部使用

Game_Event 在 Game_Map 内部使用

还有两个重要的类要介绍,它们的分量很多,多数脚本都继承它们

Game_Battler 作为 Game_Actor类和Game_Enemy类的超级类

Game_Character作为Game_Player类和Game_Event类的超级类

所谓超级类就是父类,因为在Actor和Enemy,Player和Event当中都有各自相同的性质,所以要给它们一个共同的父类。

Game_BattleAction类在Game_Battler内部使用