查看: 84|回复: 0

[转载发布] 精灵描边法

[复制链接]
  • TA的每日心情
    开心
    7 天前
  • 签到天数: 37 天

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元一千年八月四日(秋) | 显示全部楼层 |阅读模式

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

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

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

    一共20行
    示范的事件描边添加下面这句:
    RUBY 代码
    1. class Spriteset_Map
    2. alias ini initialize
    3. def initialize
    4.   ini
    5.   for i in$game_map.events.keys.sort
    6.     @character_sprites.push Sprite_MB.new(@viewport1, $game_map.events[i])
    7.   end
    8. end
    9. end
    复制代码


    (引用)需要的模糊blur方法;
    RUBY 代码
    [code]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

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-17 19:55 , Processed in 0.046661 second(s), 44 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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