Project1

标题: 不是很懂为啥RM的脚本架构要这样设计 [打印本页]

作者: 有丘直方    时间: 2018-8-31 20:26
标题: 不是很懂为啥RM的脚本架构要这样设计
既然把$scene这玩意扔了,为啥还留着$data_***和$game_***
我觉得架构应该这样设计:
把DataManager模块扔了
然后咱做个Data模块,除了用来实现原来DataManager的功能,单例类里面还有attr_accessor
比如Data.actors,Data.items之类的
接着把Game_***什么的类都扔了,造一个Game的Namespace
Game模块里面有Game::Map,Game::Party之类的东西
$game_map.map_id这种画风全部变成Game::Map.map_id
至于load_database里面$game_*** = Game_***.new的画风都变成Game::***.init
RUBY 代码复制
  1. module Data
  2.   class << self
  3.     attr_accessor :actors
  4.     attr_accessor :classes
  5.     attr_accessor :skills
  6.     # ...
  7.   end
  8.   module_function
  9.   def load_normal_database
  10.     self.actors = load_data("Data/Actors.rvdata2")
  11.     # ...
  12.   end
  13.   def create_game_objects
  14.     Game::Temp.init
  15.     Game::System.init
  16.     # ...
  17.   end
  18.   # ...
  19. end
就像这样
作者: shitake    时间: 2018-9-1 08:31
需要注意的是 gamexxx并不都是单例类 datamanager十分必要
改出一堆namespace一堆单例类 有点oo过度的感觉
就架构上来说va是最合理的 反而到了mv一方面因为js的原因再加上我觉得写mv的水平明显逊色于写va的 折腾了一堆没必要的xxxmanager
作者: ⑨姐姐    时间: 2018-9-1 08:33
我觉得主要原因是序列化的时候灵活直观。

至于用全局变量还是静态类,既然两者等价那就无所谓合理不合理,并不是全局变量就低人一等。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1