Project1

标题: 如何做出在战斗中改变画面色调一回合 [打印本页]

作者: 玛丽猫    时间: 2014-7-16 18:52
标题: 如何做出在战斗中改变画面色调一回合
RT,做了一个执行公共事件的技能,需要用到这种效果。
本人脚本白啊T T
作者: kuerlulu    时间: 2014-7-16 18:53
为什么不能在公共事件里设置更改色调
作者: 正太君    时间: 2014-7-16 21:45
是针对某一场战斗还是任意战斗呢?
作者: 恐惧剑刃    时间: 2014-7-17 07:36
本帖最后由 恐惧剑刃 于 2014-7-17 07:42 编辑

更改战斗背景的色调可否?
先插入此脚本

  1. module RPG
  2.   module Cache
  3.    
  4.     def self.battleback(filename, hue = 0)
  5.       self.load_bitmap("Graphics/Battlebacks/", filename, hue)
  6.     end

  7.   end
  8. end
复制代码
再在Game_Temp多加一个变量attr_accessor :screen
并且下方初始化 @screen = 0


找到Spriteset_Battle默认100行把if @battleback_name != $game_temp.battleback_name改为
  1. if @battleback_name != $game_temp.battleback_name or
  2.       @old_screen != $game_temp.screen
  3.       @old_screen = $game_temp.screen
复制代码
当前107行 @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
改为
  1. @battleback_sprite.bitmap = RPG::Cache.battleback(
  2.       @battleback_name, $game_temp.screen)
复制代码
然后在战斗事件中使用 $game_temp.screen = n 就可以改变色调
n在0到360取值



或者给任意角色或者敌人附加一个特殊状态,这个状一回合就消失
动画是画面闪烁
作者: 玛丽猫    时间: 2014-7-17 17:44
恐惧剑刃 发表于 2014-7-17 07:36
更改战斗背景的色调可否?
先插入此脚本再在Game_Temp多加一个变量attr_accessor :screen
并且下方初始化 @ ...

还有一两个小问题,如果能够解答就最好了。
1:

出现了这个窗口。“插入脚本”指的是在main前插入这个脚本吧?
2:(可无视)
请问如果将画面改成黑白应该输入什么数字或怎么改?
作者: 恐惧剑刃    时间: 2014-7-17 19:18
本帖最后由 恐惧剑刃 于 2014-7-17 19:41 编辑
玛丽猫 发表于 2014-7-17 17:44
还有一两个小问题,如果能够解答就最好了。
1:


1. module 放哪里都可以
类型错误 nil 不能转换为 字符串 …… 理论上不应该出现这种问题
就算出现也该是 nil 不能转换为 Integer

另外我发现这个方法…………
直接这样会好。。
找到Spriteset_Battle在initialize中加入
$game_temp.screen = Viewport.new(0, 0, 640, 480)
$game_temp.screen.z = 5000
$game_temp.screen.tone = Tone.new(0, 0, 0, 0)
并且下方dispose处释放
$game_temp.screen.dispose
使用的时候就是 $game_temp.screen.tone.set(红, 绿, 蓝, 灰度)

2.PS好了。。。



======什么?可以在战斗事件中直接改变画面色调。。
你发这个帖我还以为不能改的。。。
看来都是多此一举了…………………………

你可以在改变前记录一下 拷贝下$game_screen.tone的值
想要改回来的时候
使用 $game_screen.start_tone_change(色调, 时间)

作者: 玛丽猫    时间: 2014-7-17 19:47
恐惧剑刃 发表于 2014-7-17 19:18
1. module 放哪里都可以
类型错误 nil 不能转换为 字符串 …… 理论上不应该出现这种问题
就算出现也该是 ...

我已经头晕了,看了半天脚本,感!觉!自!己!萌!萌!哒!

如果还是不知道原因就算了吧,不是很要紧。
P.S:之前错误的原因是脚本冲突,于是我删掉了所有添加的脚本……这次应该不是这个原因了
作者: 恐惧剑刃    时间: 2014-7-17 20:10
本帖最后由 恐惧剑刃 于 2014-7-17 20:35 编辑
玛丽猫 发表于 2014-7-17 19:47
我已经头晕了,看了半天脚本,感!觉!自!己!萌!萌!哒!

如果还是不知道原因就算了吧,不是很要紧。 ...


抱歉是我误导你了,现在不需要添加任何脚本了。。删了去吧
在战斗事件中先脚本
$game_temp.xxx(具体这个变量怎么设置我就不废话了)= $game_screen.tone.clone
然后改画面色调
等一个回合后
使用$game_screen.start_tone_change($game_temp.xxx, 时间)
时间就是“渐变”所需的帧数。


这个我测试了下,有个小问题 找到Interpreter 7
默认274行(报错的地方)改为
if result.class == FalseClass
果然XP预设脚本多多少少有些BUG




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