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

Project1

 找回密码
 注册会员
搜索
查看: 2390|回复: 19

[已经解决] 请教如何循环显示文件内的所有图片

[复制链接]

Lv4.逐梦者

梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
帖子
1231
发表于 2018-6-18 13:48:38 | 显示全部楼层 |阅读模式

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

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

x
没错,就是指定文件夹内的所有图片。用于流畅浏览动作使用的。
QQ截图20180618134414.png
编号为1~N之间,循环显示。达成一个动作的浏览。
这只是个例图,有很多不同编号形式的文件夹,因为有很多的动作嘛。
QQ截图20180618134440.png
请问这个效果的精灵该怎么生成。
一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。

Lv3.寻梦者

梦石
0
星屑
3673
在线时间
1958 小时
注册时间
2013-1-3
帖子
9519
发表于 2018-6-18 20:29:40 | 显示全部楼层
本帖最后由 紫英晓狼1130 于 2018-6-18 20:33 编辑

改Scene就可以了
我以Scene_Status为例简单改了一下
传不了附件和图片…真次…
  1. #==============================================================================
  2. # ■ Scene_Status
  3. #------------------------------------------------------------------------------
  4. #  处理状态画面的类。
  5. #==============================================================================

  6. class Scene_Status
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     actor_index : 角色索引
  10.   #--------------------------------------------------------------------------
  11.   def initialize(actor_index = 0, equip_index = 0)
  12.     @actor_index = actor_index
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # ● 主处理
  16.   #--------------------------------------------------------------------------
  17.   def main
  18.     # ★
  19.     @pic = Sprite.new
  20.     @pic.bitmap = Bitmap.new("Graphics/System/1.png")
  21.     @pic.x = 0
  22.     @pic.y = 0
  23.     @pic.z = 200
  24.     @pic.src_rect.set(0,0,@pic.bitmap.width/4,@pic.bitmap.height)
  25.     @a = 1
  26.     # 获取角色
  27.     @actor = $game_party.actors[@actor_index]
  28.     # 生成状态窗口
  29.     @status_window = Window_Status.new(@actor)
  30.     # 执行过渡
  31.     Graphics.transition
  32.     # 主循环
  33.     loop do
  34.       # 刷新游戏画面
  35.       Graphics.update
  36.       # 刷新输入信息
  37.       Input.update
  38.       # 刷新画面
  39.       update
  40.       # 如果画面被切换的话就中断循环
  41.       if $scene != self
  42.         break
  43.       end
  44.     end
  45.     # 准备过渡
  46.     Graphics.freeze
  47.     # 释放窗口
  48.     @status_window.dispose
  49.     @pic.dispose
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # ● 刷新画面
  53.   #--------------------------------------------------------------------------
  54.   def update
  55.     # ★ 四帧
  56.     @a += 1
  57.     @a %= 40
  58.     @pic.src_rect.set(@a/10*@pic.bitmap.width/4,0,@pic.bitmap.width/4,@pic.bitmap.height)
  59.     # 按下 B 键的情况下
  60.     if Input.trigger?(Input::B)
  61.       # 演奏取消 SE
  62.       $game_system.se_play($data_system.cancel_se)
  63.       # 切换到菜单画面
  64.       $scene = Scene_Menu.new(3)
  65.       return
  66.     end
  67.     # 按下 R 键的情况下
  68.     if Input.trigger?(Input::R)
  69.       # 演奏光标 SE
  70.       $game_system.se_play($data_system.cursor_se)
  71.       # 移至下一位角色
  72.       @actor_index += 1
  73.       @actor_index %= $game_party.actors.size
  74.       # 切换到别的状态画面
  75.       $scene = Scene_Status.new(@actor_index)
  76.       return
  77.     end
  78.     # 按下 L 键的情况下
  79.     if Input.trigger?(Input::L)
  80.       # 演奏光标 SE
  81.       $game_system.se_play($data_system.cursor_se)
  82.       # 移至上一位角色
  83.       @actor_index += $game_party.actors.size - 1
  84.       @actor_index %= $game_party.actors.size
  85.       # 切换到别的状态画面
  86.       $scene = Scene_Status.new(@actor_index)
  87.       return
  88.     end
  89.   end
  90. end
复制代码

《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
帖子
1231
 楼主| 发表于 2018-6-18 20:40:33 | 显示全部楼层
本帖最后由 文雅夕露 于 2018-6-18 20:42 编辑
紫英晓狼1130 发表于 2018-6-18 20:29
改Scene就可以了
我以Scene_Status为例简单改了一下
传不了附件和图片…真次…


没这么简单吧...
@pic.bitmap = Bitmap.new("Graphics/System/1.png")
读取的是指定位置的一张图而已,其效果是分割成4个切换来显示,
美工上要拼接这种素材费时间太大。
再说图片的数量是要读取指定文件夹内的文件的。
比如我例图是待机的四图,切换一下到攻击后,文件夹里的是六图。
这样的...
最后上传不了附件是浏览器的问题,谷歌浏览器可以上传。
一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3673
在线时间
1958 小时
注册时间
2013-1-3
帖子
9519
发表于 2018-6-18 20:45:10 | 显示全部楼层
文雅夕露 发表于 2018-6-18 20:40
没这么简单吧...
再说图片的数量是要读取指定文件夹内的文件的。
比如我例图是待机的四图,切换一下到攻 ...

我给您的是思路
帧数可以通过图片宽度除以单帧宽度得到的
rm没有什么强大的读取功能,实现往往通过算法的
《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23958
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

发表于 2018-6-18 20:54:38 | 显示全部楼层
可以直接用ruby的相关函数获得文件夹里面的全部文件名,但是要注意打包之后这些东西全部用不了……
http://www.runoob.com/ruby/ruby-dir-methods.html
下面的代码会给出一个数组~
  1. Dir['Graphics/Vertical/Actors3/Action/待机/*']
复制代码

点评

等我考完QAQ  发表于 2018-6-19 08:51
我不会用耶...前辈能不能举个例子或者做个范例看看  发表于 2018-6-18 23:21
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9467
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

发表于 2018-6-19 09:14:46 | 显示全部楼层
楼上猫叔正解。建议猫叔用 Dir.glob,Dir[] 的效果只是 Dir.glob 的一个特例。
RUBY 代码复制
  1. # 获取当前目录下所有 .jpg 文件
  2. Dir.glob("*.jpg")
  3.  
  4. # 获取 Graphics 目录下的所有文件
  5. Dir.glob("Graphics/*")


Dir.glob 会返回一个数组,里面包含了所有符合条件的文件名。但是刚刚测试发现 Dir.glob 给出的数组里面的顺序是乱的。因此最好来一句 sort 将其按名称排序。
RUBY 代码复制
  1. Dir.glob("Graphics/*").sort


另外:
1. 用 Bitmap.new 生成出来的图片最后记得释放,如果不释放直接用它生成下一张图的话可能会出毛病。
2. 如果是 N 张图简单拼接的话,工作量非常小。不需要手工拼接,任何一个能处理图片的代码都能干这事。最大的问题可能在于拼完了不知道总共是几张图拼起来的。

点评

这个返回的是文件目录+文件名啊..怎么用?  发表于 2018-6-20 09:57
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
帖子
1231
 楼主| 发表于 2018-6-19 23:41:27 | 显示全部楼层
RyanBern 发表于 2018-6-19 09:14
楼上猫叔正解。建议猫叔用 Dir.glob,Dir[] 的效果只是 Dir.glob 的一个特例。
# 获取当前目录下所有 .jpg  ...

版主前辈...
我不知道该怎么用这个特例。
主要是还关联着切换的问题...
从一个文件夹切换到另一个文件夹循环显示图片。
获取当前Dir.glob只能获取当前的,但切换后还能不能获取另一个?
不知可否提供一个范例作参考呢,谢谢。
一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3039
在线时间
1052 小时
注册时间
2011-8-16
帖子
242
发表于 2018-6-20 14:46:47 | 显示全部楼层
文雅夕露 发表于 2018-6-19 23:41
版主前辈...
我不知道该怎么用这个特例。
主要是还关联着切换的问题...

可用 Dir.chdir(path) 更改当前目录
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
32988
在线时间
10464 小时
注册时间
2009-3-15
帖子
4756
发表于 2018-6-20 16:49:37 | 显示全部楼层
文雅夕露 发表于 2018-6-19 23:41
版主前辈...
我不知道该怎么用这个特例。
主要是还关联着切换的问题...

你想要的是多个文件夾循环显示?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
帖子
1231
 楼主| 发表于 2018-6-20 19:31:04 | 显示全部楼层
soulsaga 发表于 2018-6-20 16:49
你想要的是多个文件夾循环显示?

差不多的意思。
因为要切换嘛。
主楼的例图说明一下:
Q/W会切换角色,当然存放另一个角色的文件目录是不一样的。
上/下会切换动作,当然存放另一个动作的文件目录也是不一样的。
一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-19 17:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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