Project1

标题: 请问如何用脚本实现切换标题标签时标题背景图同时切换 [打印本页]

作者: Sword丶大V    时间: 2019-1-1 18:27
标题: 请问如何用脚本实现切换标题标签时标题背景图同时切换
大佬们告诉一下我,又想又搜了一下午也没有解决。就是开始游戏/继续游戏/退出游戏切换的同时切换不同的三张图
作者: 张咚咚    时间: 2019-1-1 20:13
下面脚本塞到 Scene_Title 里面
  1.   def update
  2.     super
  3.     @sprite1.bitmap = Cache.title1 ["Book","Castle","Crystal"][@command_window.index]
  4.   end
复制代码

作者: Sword丶大V    时间: 2019-1-1 20:34
张咚咚 发表于 2019-1-1 20:13
下面脚本塞到 Scene_Title 里面

多谢了,看完了这些简直醍醐灌顶,但是还是抱有很大的疑惑。
我之前也想着用光标更新的脚本来解决,但是最近才学了几天ruby,就是不知道index里面是按什么来排序的,所以我总想着用读取光标指向的对象根据名字来判断,但是琢磨了一下午我也没找到读取的方法,你的这个让我知道了index应该是数组或者哈希数组,虽然能用,但是本质上我还是没有搞清楚怎么读取光标指向的对象...
作者: VIPArcher    时间: 2019-1-1 22:46
本帖最后由 VIPArcher 于 2019-1-1 22:48 编辑

2楼的方法是可以的,不过不建议每帧更新(虽然没事,但是也是因为图片取自Cache,有缓存,如果是Bitmap.new的背景就不好了
这里提供2种优化方式,你可以参考一下,然后选一种用吧。
方法一:
  1. class Scene_Title
  2.   #--------------------------------------------------------------------------
  3.   # ● 生成指令窗口
  4.   #--------------------------------------------------------------------------
  5.   alias vip20190101_ccw create_command_window
  6.   def create_command_window
  7.     vip20190101_ccw
  8.     @command_window.set_handler(:update_background, method(:update_background))
  9.   end
  10.   def update_background
  11.     @sprite1.bitmap = Cache.title1 ["Book","Castle","Crystal"][@command_window.index]
  12.   end
  13. end
  14. class Window_TitleCommand
  15.   #--------------------------------------------------------------------------
  16.   # ● 更新帮助窗口
  17.   #--------------------------------------------------------------------------
  18.   def call_update_help
  19.     call_handler(:update_background)
  20.   end
  21. end
复制代码

方法二:
  1. class Scene_Title
  2.   #--------------------------------------------------------------------------
  3.   # ● 生成指令窗口
  4.   #--------------------------------------------------------------------------
  5.   alias vip20190101_update update
  6.   def update
  7.     vip20190101_update
  8.     update_background if @bg_index != @command_window.index
  9.   end
  10.   def update_background
  11.     @bg_index = @command_window.index
  12.     @sprite1.bitmap = Cache.title1 ["Book","Castle","Crystal"][@command_window.index]
  13.   end
  14. end
复制代码





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