设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1145|回复: 0
打印 上一主题 下一主题

简化命令窗口的 handler 设置

[复制链接]

…あたしは天使なんかじゃないわ

梦石
0
星屑
2207
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

跳转到指定楼层
1
发表于 2015-1-31 21:45:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 taroxd 于 2015-2-1 08:43 编辑

暂时没什么用。可能会给日后的偷懒打下基础。

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2. # ● 简化命令窗口的 handler 设置
  3. #--------------------------------------------------------------------------
  4.  
  5. module Taroxd
  6.  
  7.   # Window_Command 的子类 include 后,会自动对场景调用 symbol 对应的
  8.   # command_symbol 方法,无需再 set_handler。
  9.   module SymbolHandler
  10.  
  11.     def handle?(symbol)
  12.       super || symbol_to_command(symbol)
  13.     end
  14.  
  15.     def call_handler(symbol)
  16.       @handler[symbol].call if @handler.key?(symbol)
  17.       command = symbol_to_command(symbol)
  18.       receiver.send(command) if command
  19.     end
  20.  
  21.     private
  22.  
  23.     # 以下方法可由子类覆盖。
  24.  
  25.     # 调用者。默认为当前场景。
  26.     def receiver
  27.       SceneManager.scene
  28.     end
  29.  
  30.     def command_prefix
  31.       'command_'
  32.     end
  33.  
  34.     # 返回符号对应的场景方法名。
  35.     # 场景不能响应 command_symbol 时,返回 nil。
  36.     def symbol_to_command(symbol)
  37.       sym = :"#{command_prefix}#{symbol}"
  38.       sym if receiver.respond_to?(sym)
  39.     end
  40.   end
  41. end
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-1 18:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表