Project1
标题:
RTAB被击时战斗图抖动
[打印本页]
作者:
阿尔卑斯
时间:
2021-3-22 18:26
标题:
RTAB被击时战斗图抖动
就是彩虹神剑的被击抖动效果。但现在用的是RTAB,尝试整合中但出现各种问题。这里咨询下有没有已经整合好的脚本,或者讨论一下。
作者:
enghao_lim
时间:
2021-3-22 23:31
我没记错RTAB本身有连击插件脚本(就是彩虹神剑,叫法不同),以前在豪华版的整合包里头有,只是那个现在下载不到,看看有没有人有备份之类的。
作者:
阿尔卑斯
时间:
2021-3-23 19:06
enghao_lim 发表于 2021-3-22 23:31
我没记错RTAB本身有连击插件脚本(就是彩虹神剑,叫法不同),以前在豪华版的整合包里头有,只是那个现在下 ...
嗯,是有的。不过那个单纯是连击。没有抖动
作者:
st251355
时间:
2021-3-24 21:51
可以針對RPG::Sprite自行添加抖動的效果
參考animation_process_timing的寫法
假設在指定動畫幀使用了某se音效,名稱為shake
那麼程式上寫成 如果音效名稱等於shake,就去執行抖動效果
抖動時間長度等於關鍵幀的長度、抖動強度等於R、抖動速度等於G、偏移量等於B、型態等於alpha
↓寫在animation_process_timing內或自行定義都可以
if timing.se.name == "System_Shake"
if hit
c = timing.flash_color
self.shake(timing.flash_duration, c.red, c.green, c.blue , c.alpha)
end
end
复制代码
↓這段寫在class內的哪裡都可以
def shake(timing, power, speed, shift, type)
@_shake_duration = timing
@shake_count = timing
@shake_power = 2 * power
@shake_speed = speed
@shake_shift_count = shift == 0 ? 6 : shift
@shake_type = type
end
复制代码
接著編寫震動的處理,抖動時間大於0時才做(寫在update內)
用三角函數、正弦實作晃動效果,針對角色圖像的ox、oy做移動,如果型態(alpha)等於0做左右抖動、等於1做上下抖動、大於1上下左右都做
if @shake_count >= 1
@shake_count -= 1
width = self.width / 2
self.ox = @shake_power * Math.sqrt(@shake_count.to_f/@_shake_duration) *
Math.sin((@_shake_duration-@shake_count) * @shake_speed * Math::PI / @shake_shift_count) +
width if @shake_type == 0 || @shake_type >= 2
self.oy = @shake_power * Math.sqrt(@shake_count.to_f/@_shake_duration) *
Math.sin((@_shake_duration-@shake_count) * @shake_speed * Math::PI / @shake_shift_count) +
self.src_rect.height if @shake_type == 1 || @shake_type >= 2
end
复制代码
由於RTAB腳本龐大,每個人的都不盡相同,在此不提供整套方案,所以請自行添加進自己的專案內吧
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1