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

Project1

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

[有事请教] 关于如何判断文件名称

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2787
在线时间
275 小时
注册时间
2023-11-16
帖子
130
跳转到指定楼层
1
发表于 2024-5-10 08:41:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
最近在写一个新的立绘插件,我打算直接用文件名正则来判断是否是立绘,以此来免除繁杂的设置。
我写了path模块来获取文件名,不过这貌似会导致浏览器环境无法运行?有没有更好的解决办法

Lv3.寻梦者

梦石
0
星屑
2023
在线时间
602 小时
注册时间
2012-4-8
帖子
426
2
发表于 2024-5-10 17:27:52 | 只看该作者
本帖最后由 505681468 于 2024-5-10 18:08 编辑

不应该呀,写了啥?报错啥?
按原生方法读取文件不行吗

还是说你想要只判断文件是否存在
非 nwjs 环境是不能直接判断文件的
PC可以直接判断
安卓可以在安卓层暴露判断方法出来给js使用
IOS层和浏览器层就不知道了

JAVASCRIPT 代码复制
  1. StorageManager.exists = function(savefileId) {
  2.     if (this.isLocalMode()) {
  3.         return this.localFileExists(savefileId);
  4.     } else {
  5.         return this.webStorageExists(savefileId);
  6.     }
  7. };
  8.  
  9. StorageManager.isLocalMode = function() {
  10.     return Utils.isNwjs();
  11. };
  12.  
  13. Utils.isNwjs = function() {
  14.     return typeof require === 'function' && typeof process === 'object';
  15. };
pokemon 和 digimon 正在路上
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39049
在线时间
5727 小时
注册时间
2006-11-10
帖子
6626
3
发表于 2024-5-10 20:04:23 | 只看该作者
提供关联设置,  有关联时调用关联, 缺省时调用文件名,   让非PC端用户自己去设置好关联即可, 笑
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2787
在线时间
275 小时
注册时间
2023-11-16
帖子
130
4
 楼主| 发表于 2024-5-10 22:36:20 | 只看该作者
505681468 发表于 2024-5-10 17:27
不应该呀,写了啥?报错啥?
按原生方法读取文件不行吗

虽然我不需要手机和浏览器端,不过我是考虑发布给大家用的时候的兼容性的。
我打算写一个可以全场景界面显示,用公共事件控制的多图层支持序列帧的立绘插件,目前已经初步实现了全场景显示和多图层以及序列帧功能。
我判断的不是文件是否存在,而是读取文件名称,然后用正则来提取文件名称的数据来进行各种设置,比如文件名%[10-1],这里面的10代表为序列帧的序列号,1就代表播放的速度。
我用require('path')实现了这个,在rm原生有类似的方法吗?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2023
在线时间
602 小时
注册时间
2012-4-8
帖子
426
5
发表于 2024-5-10 23:52:50 | 只看该作者
kyjoke 发表于 2024-5-10 22:36
虽然我不需要手机和浏览器端,不过我是考虑发布给大家用的时候的兼容性的。
我打算写一个可以全场景界面 ...


原生没有,rm源码我也贴了
对于非 nwjs 是通过 localStorage 浏览器储存来实现文件保存的
通过 url 访问来读取文件的,原生并没有读取文件属性的方法

读取文件名称和判断文件是否存在都是一样的,读取文件属性而不是读取文件
还有就是浏览器/安卓的环境不一样,安卓比浏览器多了安卓文件访问,它两的测试环境不通用

原生对于非pc端,或者说非 nwjs 端没有文件访问
相对于对每个平台都做文件访问接口,做配置文件烘焙或者会更好
在部署游戏前,执行你插件的方法,生成配置文件
pokemon 和 digimon 正在路上
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2787
在线时间
275 小时
注册时间
2023-11-16
帖子
130
6
 楼主| 发表于 2024-5-11 01:01:24 | 只看该作者
505681468 发表于 2024-5-10 23:52
原生没有,rm源码我也贴了
对于非 nwjs 是通过 localStorage 浏览器储存来实现文件保存的
通过 url 访问 ...

手动写配置的话那就又麻烦了,像三十烷的那个序列帧插件,有多少帧就得写多少帧。我搞的要是和其他插件一样麻烦的话实属是写了等于没写
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2023
在线时间
602 小时
注册时间
2012-4-8
帖子
426
7
发表于 2024-5-11 01:36:17 | 只看该作者
kyjoke 发表于 2024-5-11 01:01
手动写配置的话那就又麻烦了,像三十烷的那个序列帧插件,有多少帧就得写多少帧。我搞的要是和其他插件一 ...


不用配置,你可以用js脚本读取文件列表,生成json配置文件(也可以不用)
做个中间层,在游戏读取data构造游戏data对象的时候,加一层插件配置的数据应用
或者直接写入原生的data配置,例如 actors 的 note,这样就可以走原生的 meta 了

就是把你的插件本来要自动分析的结果,保存成配置而已
pokemon 和 digimon 正在路上
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2787
在线时间
275 小时
注册时间
2023-11-16
帖子
130
8
 楼主| 发表于 2024-5-11 01:40:03 | 只看该作者
505681468 发表于 2024-5-11 01:36
不用配置,你可以用js脚本读取文件列表,生成json配置文件(也可以不用)
做个中间层,在游戏读取data构 ...

哦?不过我不是很懂如何具体操作,有范例的代码吗?我只是在获取文件名这步用到了node模块,如果代码不是很复杂,应该是可以改成这样式的。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2023
在线时间
602 小时
注册时间
2012-4-8
帖子
426
9
发表于 2024-5-11 02:19:56 | 只看该作者
kyjoke 发表于 2024-5-11 01:40
哦?不过我不是很懂如何具体操作,有范例的代码吗?我只是在获取文件名这步用到了node模块,如果代码不是 ...

简单点就走原生rm读取文件,然后分析,生成配置文件,走PC存档方法保存
然后重开游戏,走原生生成data对象的时候,就有配置数据了
之后部署/发布游戏之前记得生成配置文件就好了

你已经能正常获取文件列表,走完配置分析了,然后把配置结果保存就行了
参考存档保存 StorageManager.saveToLocalFile

pokemon 和 digimon 正在路上
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2787
在线时间
275 小时
注册时间
2023-11-16
帖子
130
10
 楼主| 发表于 2024-5-11 02:48:08 | 只看该作者
505681468 发表于 2024-5-11 02:19
简单点就走原生rm读取文件,然后分析,生成配置文件,走PC存档方法保存
然后重开游戏,走原生生成data对 ...

我最不明白的就是rm原生的读取文件了,毕竟我才用了rm几个月,所以我才想要示范的代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-5 10:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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