查看: 2389|回复: 3

[已经解决] 【事件指令】 获取文件最大数目

[复制链接]
梦石
0
星屑
1297
在线时间
995 小时
注册时间
2014-12-14
回帖
2939

开拓者

发表于 2016-5-11 21:53:33 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 Vortur 于 2016-5-12 08:49 编辑


@丿梁丶小柒
此问题已解决,感谢 T大 和 喵大 !!~~



[fold=问题描述]在下近来在忙做一个CG鉴赏的系统,其中,想要一个这样的功能:

"仅将图片命名好,放于指定文件夹内,即可被CG系统采用“

要实现这一功能,在下采取的方式是
1.  使用【光标系数】标记图片,存放【光标系数】的变量暂且使用【变量9】。【光标系数】最小为0,最大为【最大文件数目】(暂以变量10存储)
$game_map.screen.pictures[1].show(
"CG_#{$game_variables[9]+1}", 0, 0, 0,
100, 100, 255, 1)

2.  捕捉【当左/右键被按下】,更新【光标系数】

3.  上述功能,还需要一个补正,即【光标系数的循环】。“当【光标系数】小于0时,将其补正为【最大文件数目】”,“当【光标系数】大于【最大文件数目】时,将其补正为0”[/fold]

那么问题来了:
如何获得【Pictrue】文件夹下的文件总数目?
如何获得【Pictrue】文件夹下的名前有【CG_】的文件总数目?
如何将此数目,赋值给变量10?

在下依稀记得,有个def file exists?的这么一个方法...但不知怎么用。希望各位大触帮帮忙...在下事后必抽出时间把这个方法发扬光大

[fold=在下参考【事件标题】的方法,制作了一个粗陋的范例] CG.test.zip (2.91 MB, 下载次数: 5) [/fold]






【RMVA教程】
---------------------
欲买桂花同载酒,终不似,少年游.

梦石
1
星屑
23236
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2016-5-12 00:15:59 | 显示全部楼层
你的图片要加密的话,那我个人的建议是手动填 CG 个数,填个数字又不会死

硬要自动判断的话,循环获取一遍图片,直到系统报错找不到图片时拦截该报错即可

评分

参与人数 1星屑 +100 收起 理由
丿梁丶小柒 + 100 我很赞同

查看全部评分

回复

使用道具 举报

梦石
0
星屑
1297
在线时间
995 小时
注册时间
2014-12-14
回帖
2939

开拓者

 楼主| 发表于 2016-5-12 01:23:26 | 显示全部楼层
本帖最后由 Vortur 于 2016-5-12 01:34 编辑
喵呜喵5 发表于 2016-5-12 00:15
你的图片要加密的话,那我个人的建议是手动填 CG 个数,填个数字又不会死

硬要自动判断的话,循环获取一遍 ...


@皿@ 谢谢!~~ =>A<.=
在下暂时不准备制作加密游戏,现在正在填的坑,也是准备用来写教程的

嗯,在下目前的思路是:
1.  设置一个【光标系数】非常大——例如100——的【图片文件名】,使用【file exists?】循环判定它是否存在
2.  找到的第一个文件,提取其文件名,作为【最大文件数目】

阁下是这个↑意思吗?

但是在下从1~2完全不会弄...如果有个方便的函数可以利用的话,在下也不想每次都修改工程...谢谢!

[fold=难点详情]具体:
首先,在下不会使用【获取文件名】的函数,在下仅查到这个
  "某一个字符串"[-2, 2]  #获得这个字符串的最后2位,即"符串"
  "某一个字符串"[0, 2]  #获得这个字符串的前2位,即"某一"

然后,在下不会使用【file exists】,这个是在阁下的脚本中找到的字段

最后,在下不会使用【查找/修改 资源文件目录】的方法。现在正在使用的方法,是从【脚本编辑器】中和一些其他脚本中得来的,但完全不明白其运作原理,非常担心它因为函数的不同,而失效。
1.  @sprite1.bitmap = Cache.title1($data_system.title1_name) 改为 @sprite1.bitmap = Cache.picture($data_system.title1_name) 就是调用picture【s】文件夹下的资源

2.  
# 燭光圖像的目錄
  LIGHT_IMG_DIR = "Graphics/Lights/"

改为

  # 燭光圖像的目錄
  LIGHT_IMG_DIR = "Graphics/System/Lights/"

是调取“/System/Lights/”下的资源

3.    DLL_NAME = 'tktk_bitmap'  改为   DLL_NAME = 'System/tktk_bitmap' 是调取“System/”下的资源

在下无力找出这三种例子中的共同点,或许再多点范例会可以;但是目前这类修改的方法还很简陋

谢谢解答![/fold]

点评

请学习 ruby 语言本身,而不是学习范例  发表于 2016-5-12 07:07
【RMVA教程】
---------------------
欲买桂花同载酒,终不似,少年游.
回复

使用道具 举报

…あたしは天

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

开拓者贵宾

发表于 2016-5-12 07:12:01 | 显示全部楼层
本帖最后由 taroxd 于 2016-5-12 07:24 编辑

[pre lang="ruby"]Dir['Graphics/Pictures/CG_*.{jpg,png}'].size # 对加密文件无效[/pre]

相关原理请你学习 ruby 之后,学会看 ruby 文档(非 F1)再问。不看书只做题是没有意义的。
不要用事件的思路去揣测脚本代码。
就一行代码的事情,是不值得做什么范例的。

另外说句题外话,自己写不出而且找不到脚本,事件还解决不了的时候不要去用新手礼包以及一堆关系不大的链接回答别人的问题。

点评

谢谢!另外新手礼包的事情抱歉了...  发表于 2016-5-12 07:55

评分

参与人数 1梦石 +1 收起 理由
丿梁丶小柒 + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部