じ☆ve冰风 发表于 2024-4-19 21:41:10

精灵描边法


这个不是。。。
拓展了一下- -流动光条。。效果不错,(喂!不要看fps

代码待发- -
召唤bbb= =:
@弗雷德@satgo1546 @@kfflX @你最珍贵@烟倦@神秘影子 等等

RUBY 代码
################################################
=begin
使用说明:此脚本运用中心处放大法实现描边。
使用方法:更改父类继承需要描边的精灵
          更改super(args)参数、更改(父类图像的)path以及obj_name。
          基本完成,其他代码自行修改微调即可。
本脚本示范人物行走图的描边,其他描边的注意ox,oy也要实现到中央(这里通过改y坐标)
zoom可自行更改,blur(模糊)源码自带,VX不需要
=end
################################################
class Sprite_MB < Sprite_Character#←RPG::Sprite
def initialize(viewport,obj)#初始化对像
    super(viewport,obj)
    obj_name=@character.character_name#
    ablack("Graphics/Characters/",obj_name)
    update
end
def update#更新画面
    super;zoom=1.1
    self.zoom_x,self.zoom_y= zoom,zoom
    self.z += -1
    self.y += @ch*(self.zoom_y-1)/2
    self.blend_type,self.opacity = 1,100
end
def ablack(path,obj_name)#描边
    self.bitmap = Bitmap.new(path+obj_name)
    self.color.set(255,255,255,255)
    self.bitmap.blur()rescuefalse
end
end

一共20行
示范的事件描边添加下面这句:
RUBY 代码
class Spriteset_Map
alias ini initialize
def initialize
ini
for i in$game_map.events.keys.sort
    @character_sprites.push Sprite_MB.new(@viewport1, $game_map.events)
end
end
end


(引用)需要的模糊blur方法;
RUBY 代码
class Bitmap
def blur(times=1,during =1,blur=1)
   #blur(重做模糊次数,经历帧数,分散半径)
   for i in1..times
   blur_r(blur)
   for j in1..during
       Graphics.updateif i > 1and during >1
   end   
   end   
end
def blur_r(radius = 2)#blur_r(分散半径)
    radius = 1if radius
页: [1]
查看完整版本: 精灵描边法