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

Project1

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

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

[复制链接]

Lv4.逐梦者

梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
帖子
1231
跳转到指定楼层
1
发表于 2018-6-18 13:48:38 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
没错,就是指定文件夹内的所有图片。用于流畅浏览动作使用的。

编号为1~N之间,循环显示。达成一个动作的浏览。
这只是个例图,有很多不同编号形式的文件夹,因为有很多的动作嘛。

请问这个效果的精灵该怎么生成。
一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。

Lv4.逐梦者 (版主)

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

开拓者贵宾剧作品鉴家

14
发表于 2018-6-23 23:09:33 | 只看该作者
文雅夕露 发表于 2018-6-21 20:01
版主前辈猜得没错。
我的确是想这样表示的。
对版主的疑问回来一下:

简单做了一下,看 Action_Sprite 的脚本和 Scene_Vertical 改动的地方。

主要实现思路是由 Action_Sprite 脚本的 update 方法负责更新动画的每一帧。
Action_Sprite 有一个方法 set(actor_id, action_id),通过改变这两个值可以更改 Action_Sprite 内部的文件路径,从而达到目录切换的效果。
利用 Dir.glob 可以获取指定文件夹里的某些类型的所有文件。

建议将缓存功能统一整合到 RPG::Cache 模块里,而不是另外写一个。详见我的 Action_Sprite 脚本的第一部分。

因为给我的素材只有第三个角色的,所以测试的时候只能测试第三个角色的情况。

另外没太明白 Vertical.rxdata 的含义,因为我看到你的文件夹命名都很有规律,用不着这么多设定区域。可能改变的也只有 max 这个值了。如果这个值在游戏开始就已经定死不会变的话,感觉统一写在脚本的设定区域要更好。

Project20.7z (2.38 MB, 下载次数: 35)

点评

十分感谢版主前辈抽空写的范例,剩下的整合我自己来研究研究,再次感谢。  发表于 2018-6-23 23:50

评分

参与人数 1+1 收起 理由
文雅夕露 + 1 十分感谢

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
帖子
1231
13
 楼主| 发表于 2018-6-21 20:01:40 | 只看该作者
本帖最后由 文雅夕露 于 2018-6-21 20:03 编辑
RyanBern 发表于 2018-6-21 09:34
在你主楼的提问帖中并没有提到文件夹切换,因此我只回答了“如何遍历一个文件夹里所有文件”这个部分。

...


版主前辈猜得没错。
我的确是想这样表示的。
对版主的疑问回来一下:
1.角色数量暂定是8个,当然可以通过脚本设定扩容;
2.动作数量暂定是8个,Action1~8的文件夹;当然可以通过脚本设定扩容;
3.每个角色都会拥有每个动作;
PS:范例截图中的说明文字提及了切换的问题。只是文字上没有表达出来。
具体的文件夹分类和使用的脚本在范例里。前辈可以看看。
范例:
Project20.zip (1.79 MB, 下载次数: 28)


点评

是的,暂时是这么设定,打算把衣服功能先去掉。  发表于 2018-6-22 11:23
看了下工程,除了动作,表情以外,还有衣服?现在工程里和衣服有关的变量其实是给动作用的?  发表于 2018-6-22 00:22
一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

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

开拓者贵宾剧作品鉴家

12
发表于 2018-6-21 09:34:46 | 只看该作者
文雅夕露 发表于 2018-6-19 23:41
版主前辈...
我不知道该怎么用这个特例。
主要是还关联着切换的问题...

在你主楼的提问帖中并没有提到文件夹切换,因此我只回答了“如何遍历一个文件夹里所有文件”这个部分。

你的工程总得有些文件夹命名的结构,从你的描述上看我能猜出来个大概。每个不同的角色有不同的动作,每个不同的动作对应着一堆图片来表示动画。
看起来的目录结构应该是下面这样

  1. 角色1
  2.   - 动作1
  3.     - 1.png
  4.     - 2.png
  5.     - 3.png
  6.   - 动作2
  7.     - 1.png
  8.     - 2.png

  9. 角色2
  10.   - 动作1
  11.     ...
复制代码

现在的问题是,1. 角色的数量大概有多少?2. 动作的数量有多少?是不是每个角色都会拥有每个动作?例如,角色1可以只有两个动作的动画,角色2的动作动画是另外两个。

明确这些信息之后我会再给一个解决方案。


PS:提问的时候尽量把问题描述完整,为什么不在一开是提问的时候就把目录的切换也放进去呢?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6245
在线时间
558 小时
注册时间
2018-6-5
帖子
129
11
发表于 2018-6-21 01:04:33 | 只看该作者
5楼猫叔正解
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

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

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36124
在线时间
10712 小时
注册时间
2009-3-15
帖子
4806
9
发表于 2018-6-20 16:49:37 | 只看该作者
文雅夕露 发表于 2018-6-19 23:41
版主前辈...
我不知道该怎么用这个特例。
主要是还关联着切换的问题...

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

使用道具 举报

Lv3.寻梦者

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

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

使用道具 举报

Lv4.逐梦者

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

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

使用道具 举报

Lv4.逐梦者 (版主)

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

开拓者贵宾剧作品鉴家

6
发表于 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
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-21 14:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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