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

Project1

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

[已经解决] 请问如何用脚本实现切换标题标签时标题背景图同时切换

[复制链接]

Lv1.梦旅人

梦石
0
星屑
90
在线时间
11 小时
注册时间
2018-12-20
帖子
2
跳转到指定楼层
1
发表于 2019-1-1 18:27:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
大佬们告诉一下我,又想又搜了一下午也没有解决。就是开始游戏/继续游戏/退出游戏切换的同时切换不同的三张图

Lv4.逐梦者

梦石
0
星屑
19284
在线时间
3074 小时
注册时间
2013-1-11
帖子
1288
2
发表于 2019-1-1 20:13:20 | 只看该作者
下面脚本塞到 Scene_Title 里面
  1.   def update
  2.     super
  3.     @sprite1.bitmap = Cache.title1 ["Book","Castle","Crystal"][@command_window.index]
  4.   end
复制代码

评分

参与人数 2星屑 +10 +1 收起 理由
VIPArcher + 10 不大推荐每帧都更新
Sword丶大V + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
90
在线时间
11 小时
注册时间
2018-12-20
帖子
2
3
 楼主| 发表于 2019-1-1 20:34:12 | 只看该作者
张咚咚 发表于 2019-1-1 20:13
下面脚本塞到 Scene_Title 里面

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

点评

index只是一个数字而已,这里他是用@command_window.index做下标取前面背景图数组中的文件名  发表于 2019-1-1 22:47
你可以参考Window_Command的第69行。获取哈希对象可以使用command_window.instance_variable_get(:@list)[0]获取第一个对象。  发表于 2019-1-1 20:56
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
9956
在线时间
5019 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

4
发表于 2019-1-1 22:46:12 | 只看该作者
本帖最后由 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
复制代码

评分

参与人数 2+2 收起 理由
张咚咚 + 1 我很赞同
Sword丶大V + 1 认可答案

查看全部评分

回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-4-27 12:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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