我在想是否有人知道任何可以在引擎中为战斗背景添加特效(如旋转、色调变化和波浪效果)的脚本或代码。我一直在寻找,但没能找到能够实现这些功能的脚本。我理解这可能需要着色器,但我对RMXP引擎的运行机制不太了解,所以不知道这是否可行。
你按顺序命名你的战斗背景图像(例如 Forest、Forest1、Forest2、Forest3)。脚本会以指定的速度循环播放这些图像,从而创建动画效果。 []
代码:
在脚本编辑器中,在 Main 上方创建一个新的脚本部分,并粘贴以下代码: [1, 2]
ruby
#==============================================================================
# Animated Battle Background by Blizzard
# Version: 1.1b (Slightly modified for brevity)
#==============================================================================
class Game_System
attr_accessor :ANIMATED_BATTLE_BACKGROUND
alias init_abb_game_system initialize
def initialize
init_abb_game_system
@ANIMATED_BATTLE_BACKGROUND = true
end
end
module BattlebackAnimation
SPEED = 8 # Lower = faster, higher = slower
end
class Spriteset_Battle
alias init_animated_battle_background_later initialize
def initialize
@frame = 0; @max_frame = 0; @origin_name = ""
init_animated_battle_background_later
end
alias upd_animated_battle_background_later update
def update
if $game_system.ANIMATED_BATTLE_BACKGROUND
if @origin_name != $game_temp.battleback_name
@origin_name = $game_temp.battleback_name
@frame = 0; @max_frame = 1
while FileTest.exist?("Graphics/Battlebacks/#{@origin_name}#{@max_frame}.png")
@max_frame += 1
end
end
if @max_frame > 1 && Graphics.frame_count % BattlebackAnimation::SPEED == 0
@frame = (@frame + 1) % @max_frame
fname = @frame == 0 ? @origin_name : @origin_name + @frame.to_s
$game_temp.battleback_name = fname
@battleback1_sprite.bitmap = RPG::Cache.battleback(fname)
end
end
upd_animated_battle_background_later
end
end
请谨慎使用代码。
文件设置方法:
- 创建你的基础战斗背景,并将其导入到
Graphics/Battlebacks文件夹中。 - 对于动画的每一帧,将后续文件命名为与基础文件名相同加上数字(例如,基础文件:
Grass.png,动画帧:Grass1.png、Grass2.png等)。 - 如果动画播放太快或太慢,请调整脚本模块(第 10-13 行)中的
SPEED常量。 []
2 个赞