查看: 4299|回复: 5

[RMVA发布] 做了一个很拙计的GIF播放功能……

[复制链接]
梦石
0
星屑
155
在线时间
478 小时
注册时间
2011-3-5
回帖
231
发表于 2014-11-29 10:34:56 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 love9880 于 2014-11-29 13:40 编辑

{:2_286:} 话是这么说但是其实是播放不了GIF的……就我目前能力而言……
这个脚本在大神看来应该不算什么……不过算是我的突发奇想+练习。
其实呢就是把gif转换成一帧一帧图片,然后弄成一套,按顺序显示。
[fold=脚本][pre lang="ruby" line="1"]#==============================================================================
# ■ 伪·播放GIF图片
#------------------------------------------------------------------------------
#     使用方法:
#     事件脚本  显示图片_Z(picname,x,y,i_speed,origin)
#    picname建议使用英文、数字,不要用中文
#     x,y就是图片的坐标
#     i_speed是播放速度 越大越慢 但是太小了可能会有点卡顿,默认为5
#     origin是图片原点,0是左上角,1是中心,2是右下角。默认为0
#
#==============================================================================
#     BY Zorua
#     QQ 252339319
#     Lofter:http://zorua8.lofter.com/
#==============================================================================
def 显示图片_Z(picname,x,y,i_speed=5,origin=0)
  pic = Sprite.new
  i = 1
  i_end = Dir.open("Graphics/Zorua/#{picname}") { |d| d.count - 2 }
  pic.bitmap = Bitmap.new("Graphics/Zorua/#{picname}/#{i}")
  case origin
   when 0
     pic.ox = 0
     pic.oy = 0
   when 1
     pic.ox = pic.width / 2
     pic.oy = pic.height / 2
   when 2
     pic.ox = pic.width
     pic.oy = pic.height
   else
     pic.ox = 0
     pic.oy = 0
  end
  pic.x = x
  pic.y = y
  loop do
    i+=1
    if i%i_speed == 0
      pic.bitmap = Bitmap.new("Graphics/Zorua/#{picname}/#{i/i_speed}")
    end
    Graphics.update
    if i/i_speed == i_end
      pic.dispose
      break
    end
  end
end
[/pre][/fold]

关于这个脚本的使用方法:
http://app.baidu.com/app/enter?appid=143534
打开上面这个APP,打开一个GIF图片后,保存所有帧。
接着将生成的ZIP文件解压至游戏目录的 \Graphics\Zorua\给这套图片取个英文名
然后用事件脚本【显示图片_Z("给这套图片取个英文名",0,0,5,0)】
像这样就行了……

可能说的不大明白。
范例稍后放上……

对惹希望有菊苣能帮我把 i_end 这个变量给删掉,
改成自动获取某目录下的文件数量……这样使用起来方便的多。
已解决 十分感谢 taroxd 斑竹sama


饭粒下载
Project2.rar (2.19 MB, 下载次数: 171)
梦石
0
星屑
50
在线时间
179 小时
注册时间
2013-12-8
回帖
91
发表于 2014-11-29 10:39:37 | 显示全部楼层
摸摸Z酱。看来回头可以去弄个玩玩

全部RM技能点全都点到了做地图和写文本上了,别拦着我我准备去点那个专精点!(大义凛然状
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-11-29 10:44:59 | 显示全部楼层
本帖最后由 taroxd 于 2014-11-29 10:50 编辑
对惹希望有菊苣能帮我把 i_end 这个变量给删掉,
改成自动获取某目录下的文件数量……这样使用起来方便的多。


[pre lang="ruby" line="1"]Dir.open('文件夹名称') { |d| d.count - 2 }  # 不算 . 和 ..[/pre]

愿你学脚本之路顺利。给两个风格上的建议吧。一个是让 case 和 end 对齐,一个是不要在注释/字符串/正则表达式之外出现非ASCII字符(也就是中文)

点评

好的蟹蟹www!  发表于 2014-11-29 11:04
恩是啊  发表于 2014-11-29 10:53
这是返回某文件夹下的文件数量么?  发表于 2014-11-29 10:52
不太好解释。看 Ruby 文档吧,VA 区置顶的 F1 中有附带的  发表于 2014-11-29 10:48
看不大懂……能解释一下嘛qwq  发表于 2014-11-29 10:47
回复

使用道具 举报

梦石
0
星屑
50
在线时间
139 小时
注册时间
2014-6-12
回帖
110
发表于 2014-12-18 00:21:23 | 显示全部楼层
把这个扩展一下,用png透明格式做一些技能特效或画面特效应该不难吧?
回复

使用道具 举报

梦石
0
星屑
336
在线时间
643 小时
注册时间
2010-7-16
回帖
155

开拓者

发表于 2014-12-18 14:50:55 | 显示全部楼层
不错,跳过第一步直接显示文件夹里的一堆图片省去gif这个步骤可以避免图片色彩失真
回复

使用道具 举报

david_ng223 该用户已被删除
发表于 2015-1-19 09:39:37 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部