设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4394|回复: 10
打印 上一主题 下一主题

[原创发布] 精灵描边法

[复制链接]

Lv2.观梦者

梦石
0
星屑
681
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

跳转到指定楼层
1
发表于 2013-8-16 16:08:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 end55rpg 于 2013-8-16 18:22 编辑


这个不是。。。
拓展了一下- -流动光条。。效果不错,(喂!不要看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() rescue false
  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 代码复制
  1. class Bitmap  
  2. def blur(times=1,during =1,blur=1)
  3.    #blur(重做模糊次数,经历帧数,分散半径)
  4.    for i in 1..times
  5.      blur_r(blur)
  6.      for j in 1..during
  7.        Graphics.update if i > 1 and during >1
  8.      end     
  9.    end   
  10. end
  11. def blur_r(radius = 2)#blur_r(分散半径)
  12.     radius = 1 if radius <= 1 or radius == nil #值的修正
  13.     src_bitmap = self
  14.     rect = self.rect
  15.     ta_l = 1+radius*2
  16.     ta = Table.new(ta_l,ta_l)  #过滤器
  17.     for i in 0..ta_l-1
  18.       for j in 0..ta_l-1
  19.         ta[i,j] = 1
  20.       end
  21.     end
  22.       ta[((ta.xsize+1)/2)-1,((ta.xsize+1)/2)-1] = 2**(1+radius)
  23.       main = ta[((ta.xsize+1)/2)-1,((ta.xsize+1)/2)-1]#找到中心点
  24.       nn = 2;j = ((ta.xsize+1)/2)-1;line =[]#主干道
  25.       for i in 0..((ta.xsize+1)/2)-2
  26.         ta[i,j] = nn
  27.         ta[j,i] = nn
  28.         ta[ta.xsize-1-i,j] = nn
  29.         ta[j,ta.xsize-1-i] = nn
  30.         line.push ta[i,((ta.xsize+1)/2)-1]
  31.         nn = nn * 2
  32.       end
  33.     for j in 0..line.size-1
  34.        for i in 0..((ta.xsize+1)/2)-2
  35.         line[j] = line[j]/2
  36.         if line[j] == 1
  37.           break
  38.         else
  39.           ta[((ta.xsize+1)/2)-2-i,j] = line[j]
  40.           ta[((ta.xsize+1)/2)+i,j] = line[j]
  41.           ta[((ta.xsize+1)/2)-2-i,ta.xsize-1-j] = line[j]
  42.           ta[((ta.xsize+1)/2)+i,ta.xsize-1-j] = line[j]
  43.         end
  44.       end
  45.     end
  46.     key_a = [];key_p = main
  47.     for i in 1..main
  48.       if key_p == 1
  49.         key_a.push main
  50.         break
  51.       else
  52.       key_p = key_p/2
  53.       key_a.push key_p
  54.       end
  55.     end
  56.     key_k = 0
  57.     for i in 0..key_a.size-1
  58.       key_k = key_k + key_a[i]
  59.     end
  60.     key = 255/key_k
  61.     key = 1 if key <= 0  #值的修正
  62.    for i in 0..ta.xsize-1
  63.         for j in 0..ta.ysize-1
  64.             key_main = key*ta[i,j]
  65.             key_main = 255 if key_main > 255 ; key_main = 1 if key_main < 0  #值的修正
  66.             self.blt(i-(((ta.xsize+1)/2)-1),j-(((ta.xsize+1)/2)-1),src_bitmap,rect,key_main)
  67.         end
  68.     end
  69.   end
  70. end




传送门:
最近统一发的脚本、范例一览:
1.WebRgssM简称END6r`s webrm
2.研究奇特画面效果
3.赶选中抽取的:我是大红点
4.赶选中抽取的:画面的缩放(荐)
5.待开发。。。
6.忘记了- -
7
....
99.木有啦!

评分

参与人数 3星屑 +239 收起 理由
sai90306 + 12 又見神觸!!
君虫丶 + 7 =3=
feizhaodan + 220 奖赏条例

查看全部评分

欢迎点此进入我的egames.wink.ws,有RMQQ堂等

[url=http://rpg.blue/thread-317273-1-1.html]短篇八-赶选

http://yun.baidu.com/share/link?shareid=2158225779&uk=169642147&third=0


历险ARPG赢回你的疆域新的战斗模式?…………点击这里:[宋乱贼狂 for QQ堂]
http://rpg.blue/group-368-1.html
programing ....?
[url=http://rpg.blue/thrd-234658-1-1.html]

Lv2.观梦者

梦石
0
星屑
681
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

2
 楼主| 发表于 2013-8-16 16:10:47 | 只看该作者
本帖最后由 end55rpg 于 2013-11-16 19:58 编辑

Project81.rar (211.98 KB, 下载次数: 79)

占楼说明:
这个东东技术含金量不太高,不过代码十分简洁!
适用于all精灵。- -
这玩意儿不是去在bitmap里面定义一个描边函数,所以用起来有丁点麻烦哦

继续:
可运用的例子:仿大游戏的鼠标指向描边/。。。。。等等- -
其实是伪的,原理就在脚本注释里(原理万岁
移植很简单,因为...你看懂了就知道了

点评

第二个图做法太简单就不发了。。。  发表于 2013-8-16 16:23
我更想看第二张图的……  发表于 2013-8-16 16:14
欢迎点此进入我的egames.wink.ws,有RMQQ堂等

[url=http://rpg.blue/thread-317273-1-1.html]短篇八-赶选

http://yun.baidu.com/share/link?shareid=2158225779&uk=169642147&third=0


历险ARPG赢回你的疆域新的战斗模式?…………点击这里:[宋乱贼狂 for QQ堂]
http://rpg.blue/group-368-1.html
programing ....?
[url=http://rpg.blue/thrd-234658-1-1.html]
回复 支持 反对

使用道具 举报

Lv2.观梦者

故九江太守

梦石
0
星屑
418
在线时间
2103 小时
注册时间
2012-12-5
帖子
4421
3
发表于 2013-8-16 16:32:13 | 只看该作者
什么东东
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

梦石
0
星屑
1847
在线时间
2677 小时
注册时间
2010-6-26
帖子
3197

开拓者整合系统大赛RMVX达人剧作品鉴家

4
发表于 2013-8-16 17:57:59 | 只看该作者
有种被闪瞎了的感觉。。 不过倒是还挺强大的~

评分

参与人数 1星屑 +20 收起 理由
end55rpg + 20 你是看到主页图片戳进来的吧= =.

查看全部评分


      情人怨遥夜,竟夕起相思
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
550
在线时间
1286 小时
注册时间
2011-6-14
帖子
4086
5
发表于 2013-8-16 18:12:59 | 只看该作者
我去,居然用self.color.set……
好吧我没看到RGSS里有这个东西……

点评

-。。。。color里面有啊  发表于 2013-8-16 18:13
回复 支持 反对

使用道具 举报

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

6
发表于 2013-8-17 11:13:23 | 只看该作者
就是新建一个把颜色调成单色的精灵显示在同一位置再放大点?
我没想到过这个方法囧

点评

额,用了zoom就得靠sprite所以使用麻烦点,简单点在BITMAP就用四层叠加吧(但是不透明重叠。。- -  发表于 2013-8-17 12:01
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
66 小时
注册时间
2013-6-23
帖子
161
7
发表于 2013-8-19 09:54:48 | 只看该作者
这东西很好很强大,怎么做到的

点评

你们都是大神,废伤不起啊  发表于 2013-8-19 10:39
其实这东西不强大,传送门里的才强大(pia~  发表于 2013-8-19 10:13
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

8
发表于 2013-8-19 16:24:03 | 只看该作者
角色行走的时候会不会出现BUG?

点评

。。不会。。你没插入试试?  发表于 2013-8-19 16:52
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

9
发表于 2013-8-20 15:08:56 | 只看该作者
重装win7系统所以还没试
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
4190
在线时间
64 小时
注册时间
2013-8-25
帖子
4
10
发表于 2013-10-27 16:12:57 | 只看该作者
要怎麼做才能讓主角也有光圈呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-14 07:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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