Project1
标题:
策划:RGE数据编辑器 Update 08262243
[打印本页]
作者:
轮回者
时间:
2010-8-26 20:01
标题:
策划:RGE数据编辑器 Update 08262243
本帖最后由 轮回者 于 2010-8-27 00:04 编辑
1.若干假定
(1) RGE数据编辑器仅负责对某数据的实例变量进行编辑(如@id等)。
(2) 基础数据类型包括:Array Fixnum Float Hash Integer Numeric String Table
(3)
数据库中数据的类型应为基础数据类型,或由基础数据类型有限次复合构建的衍生类
关于(3)的解释:即便用户真的有需要,要在数据库文件里面加一个Bitmap或其他类的实例,也完全可以将该实例单独存储在一个文件里,然后仅仅将文件的相对地址储存在数据库文件中。
2.“表里”系统
编辑器分为"表里"系统,其中
里系统负责对某数据文件的
数据类的架构
,使用者为游戏组中的程序员。
表系统负责对实际数据文件的修改,使用者为游戏组中的策划、数据调试人员。
(1)里系统
里系统相当于数据编辑器的系统设置
可参考下图:
[attach]27292[/attach]
里系统应有游戏组程序员进行设置。
数据格式应支持全部常用格式,以及
已经设定的数据类
。
例如,在Actor中嵌套一个Armor类
补充:应该再加一个父类 = =b
以及一个“开关”,用于设定该数据类实例在数据编辑器中是否可编辑
Table类应可设置x,y,z size默认值
(2)表系统
参考RMXP的数据库编辑器,或下图
[attach]27286[/attach]
右半部分不妨使用表格,整数、浮点小数、字符可直接在表格中修改,而对嵌套的数据类,则在双击后弹出一个用于修改对话框。
3.容错
虽然说“任何一个数据类型都应该是基础数据类型有限次复合的结果。所以,游戏制作组的程序员应该有能力将所有使用到的数据类型设置出来”
但是,容错系统依然是不可或缺的,例如,Actor类实例中嵌套了一个XXX类的实例,而XXX类实例并未定义,那么,容错系统应该自动添加一个XXX数据类。由于不清楚XXX数据类究竟为哪个数据类的子类,所以,应禁止对XXX数据类的编辑,指导程序员进行相应设置为止。
4.其他建议
(1)不妨单独设置一个“图像相对路径”的数据格式,实际数据格式为String,
在修改时,将弹出对话框,让使用者选择一个图片,并将图片的相对路径作为数据值保存下来。
(2)暂缺
5. 自动化处理
好吧,既然都不明白对用户自己定义的类如何处理,那么,请参看下图:(Data_Test类为用户自定义类)
[attach]27359[/attach]
换句话说,RGE数据库编辑器中Data_Test类的设置文件、Data_Test类定义脚本、Data_Test类的实例数据三者存在一定的转化关系。
或许你或说这样的转化可能会漏掉一些东西,但是,在Data_Test类的实例数据中都未保留的内容凭什么要编辑器支持修改呢?
P.s.
我当初做过一个类似物,效果如下图,只是,当初是用WXRUBY做的,兼容性方面问题不少。所以,谁有空用C#或其他语言写一个吧
[attach]27369[/attach]
作者:
IamI
时间:
2010-8-26 20:02
众口难调啊……顺便说下,设计为数据结构是任意的。如何定义未定 = =b
作者:
DeathKing
时间:
2010-8-26 20:04
观望。
听说元编程可以设计出SDL,这个主意不错。
既然用了鸭子类型,那数据类型就还是免了吧~~~又不是每个人使用参数之前都要检查一下 0_0
作者:
轮回者
时间:
2010-8-26 20:04
回复
IamI
的帖子
任何一个数据类型都应该是基础数据类型有限次复合的结果。
所以,游戏制作组的程序员应该有能力将所有使用到的数据类型设置出来
作者:
轮回者
时间:
2010-8-26 20:12
回复
IamI
的帖子
Table从逻辑上和一个长度为xsize * ysize * zsize的数值点列应该是没有区别的吧?
作者:
轮回者
时间:
2010-8-26 20:14
本帖最后由 轮回者 于 2010-8-26 20:17 编辑
回复
DeathKing
的帖子
那么,如果我新建一个Armor实例arr1,arr.id的初始值的数据格式究竟是String还是Number?
e,好吧,我错了。但是,个别实例变量还是需要特定数据格式的,而且数据库至少是严格限定初始类型的
作者:
DeathKing
时间:
2010-8-26 20:14
当然如II所说,自己新定义的类又如何处理呢?
实变量应该允许所有Ruby可接受对象,也就是Object。
作者:
DeathKing
时间:
2010-8-26 20:18
回复
轮回者
的帖子
id?这个是什么方法 O_O
作者:
轮回者
时间:
2010-8-26 20:19
回复
DeathKing
的帖子
数据库应当是严格限定数据类型的,至少对初始类型需要严格限定
作者:
david50407
时间:
2010-8-26 21:09
先限定类型
输入值时直接限定类型
Array Table ...有专用的编辑器
字符串就是字符串int 就是int 没得商量
这才是完整的数据库编辑器该做的事
作者:
david50407
时间:
2010-8-26 21:17
[attach]27338[/attach][attach]27339[/attach]
之前的库存...
作者:
轮回者
时间:
2010-8-26 21:58
回复
DeathKing
的帖子
新定义的类也是基本类的继承与复合。
作者:
轮回者
时间:
2010-8-26 22:32
回复
david50407
的帖子
回复
david50407
的帖子
Txt是方便程序员自行决定脚本的插入位置
然后,我觉得吧,结构和数据还是分开设置比较好,不然会有点麻烦,举个例子:
比如你给Actor类加了一个Armor_New类(这个类是自己新定义的)的实例变量,
但是没有哪个数据文件是直接由Armor_New类实例组成的,那么Armor_New类的结构在哪里定义呢?
作者:
david50407
时间:
2010-8-26 22:36
要先開啟或引入相對應的結構檔
才能編輯數據
這也是RB Marshal麻煩的地方
作者:
猫哥哥
时间:
2010-9-11 23:13
与其兼容各种情况。还不如大家约定一个固定的格式。应该会更容易实现{:nm_7:}
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1