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

Project1

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

[制作工具] [Ruby Game Maker]计划(5.19更新:界面预览版)

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
跳转到指定楼层
发表于 2014-4-2 18:42:40 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 沙漠点灰 于 2014-5-19 23:43 编辑

--- 5.19更新
更新界面预览,大家试试吧!现在只能编辑脚本玩玩
RubyGM_0.0.1.c2.1.1.preview
(版本号真长...)

现在调试功能还不完全,有对CRuby很了解的,请联系一下本人,谢谢


--- 5.15更新
刚好一个月了,像模像样的更新一下帖子
最近一直在做编辑器,编辑器使用的是MRuby,也是Ruby原作者松本行弘先生
开的新坑,几月前更新到了1.0.0版,也有2~3岁了
目前Windows版本比CRuby速度慢上几倍,库也是不完全,连File, Marshal都没有。但是适合用于嵌入式脚本。

现在概述一下一般情况。
如前所述,UI解决方案是采用Duilib,使用XML文件布局窗口,

数据编辑器则是少数由复数个XML文件描述的,主窗口与子窗口,子窗口分别描述各自的功能。
这样非常方便,能在不修改程序的情况下,仅仅修改XML文件与脚本文件就实现对数据库编辑的扩充








好的,现在正式开始:

XXX.XML  -----DUILIB---->  解释为窗口

xml控件元素中userdata里面填写     事件="脚本"   比如click="p 'sad'"
当然XML中引号等符号需要转换,使用XML编辑器就能方便点


用户触发事件-----DULIB---> 窗口事件处理

比如在<Window_DatabaseEditor::OnClick>中调用了
[pre lang="C" line="1"]else if (data.GetLength()){
更多图片 小图 大图
组图打开中,请稍候......
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

14
发表于 2014-6-12 15:55:02 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
13
 楼主| 发表于 2014-5-19 23:28:42 | 只看该作者
5.19更新

@satgo1546 界面恶心么,{:2_258:},不过也是多亏XML布局,可以自行修改的{:2_275:}
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
550
在线时间
1286 小时
注册时间
2011-6-14
帖子
4086
12
发表于 2014-5-18 20:07:52 | 只看该作者
为什么我越看这个界面越恶心……
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

11
发表于 2014-5-17 13:25:52 | 只看该作者
有什么需要帮忙的就告诉我吧,反正写点 ruby 代码还是可以的;
c++ 代码写得少,但也能写,不过只会基础的像数组、内存这类的操作。
那些代码我不想看了,看起来太头痛 - -b
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3126
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

10
发表于 2014-5-17 09:33:56 | 只看该作者
本帖最后由 IamI 于 2014-5-17 09:52 编辑
fux2 发表于 2014-5-17 00:54
最近才知道已经有人在做类似工作了(自由扩充数据库及排版的编辑器)。
@IamI 大概你们能扯两句。  ...


一个月前的消息现在才来找我怎么想都是你的错啦(误)。

应该说,这个轮子造了好多年了……现在我却连让它滚都很难滚起来。
主体采用C#编写,编辑器开放编辑,采用IronRuby。
只写数据库界面,其他基本不考虑,不过数据库的工作量基本上和写一整个RM有的一比(趴)
Marshal 数年前就已经完备,布局引擎基本完好,只不过出于个人原因一直提不快库的开发速度。
近期和事件搏斗中。


为了解决库数量不足的问题不得已采用的策略。
基本已经可用。


全部可用,顺带一提下面那个防具配置差点让我想死,XP是没有双刀的,它的配置已经这么长:
RUBY 代码复制
  1. Builder.Add(:lazy_choose , {:actual => :armor2_id ,  :label => 0, :textbook => Help.Get_Default_Text , :choice => { 0 => "(无)" },
  2.                                         :source => Proc.new do |target, parent, control|
  3.                                                 Data["armor"][Data["class"][parent["@class_id"]]["@armor_set"]].select {|target| target["@kind"].Value == 1}
  4.                                         end })

有双刀的VA就是这个样子了
RUBY 代码复制
  1. def search_weapon(control)
  2.                         actor_class = Data["class"][control.Container.Container.Value["@class_id"]]
  3.                         actor_features = control.Container.Container.Value["@features"]
  4.                         class_features = actor_class["@features"]
  5.                         type = []
  6.                         banish = false
  7.                         actor_features.each do |feature|
  8.                                 type.push(feature["@data_id"]) if feature["@code"].Value == 51
  9.                                 banish = true if feature["@code"].Value == 54 && feature["@data_id"] == 0
  10.                         end
  11.                         class_features.each do |feature|
  12.                                 type.push(feature["@data_id"]) if feature["@code"].Value == 51
  13.                                 banish = true if feature["@code"].Value == 54 && feature["@data_id"] == 0
  14.                         end
  15.                         return [] if banish
  16.                         return Data["weapon"].select {|weapon| type.include?(weapon["@wtype_id"]) }
  17.                 end
  18.                 def search_armor(control, id)
  19.                         actor_class = Data["class"][control.Container.Container.Value["@class_id"]]
  20.                         actor_features = control.Container.Container.Value["@features"]
  21.                         class_features = actor_class["@features"]
  22.                         type = []
  23.                         banish = false
  24.                         actor_features.each do |feature|
  25.                                 type.push(feature["@data_id"]) if feature["@code"].Value == 52
  26.                                 banish = true if feature["@code"].Value == 54 && feature["@data_id"] == id
  27.                         end
  28.                         class_features.each do |feature|
  29.                                 type.push(feature["@data_id"]) if feature["@code"].Value == 52
  30.                                 banish = true if feature["@code"].Value == 54 && feature["@data_id"] == id
  31.                         end
  32.                         return [] if banish
  33.                         return Data["armor"].select {|weapon| type.include?(weapon["@atype_id"]) && weapon["@etype_id"].Value == id }
  34.                 end
  35.                 def isDouble(control)
  36.                         actor_class = Data["class"][control.Container.Container.Value["@class_id"]]
  37.                         actor_features = control.Container.Container.Value["@features"]
  38.                         class_features = actor_class["@features"]
  39.                         for feature in class_features
  40.                                 return true if feature["@code"].Value == 55
  41.                         end
  42.                         for feature in actor_features
  43.                                 return true if feature["@code"].Value == 55
  44.                         end
  45.                         false
  46.                 end



写了超过2000行配置代码了,依然看不到头。

我在使用XML描述的编辑器界面上浪费了两年时间。编辑器逻辑用Ruby描述尚显的吃力,用XML描述基本达不到目标要求。
如果您有兴趣,请造访这里
这个是最后一个使用XML描述的版本。已经废弃。
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39855
在线时间
7493 小时
注册时间
2009-7-6
帖子
13485

开拓者贵宾

9
发表于 2014-5-17 00:54:38 | 只看该作者
最近才知道已经有人在做类似工作了(自由扩充数据库及排版的编辑器)。
@IamI 大概你们能扯两句。
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
8
 楼主| 发表于 2014-5-15 12:10:03 | 只看该作者
本帖最后由 沙漠点灰 于 2014-5-15 12:11 编辑

5.15更新.
大召唤术:
@eve592370698
@fux2
@Sion
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
432
在线时间
4175 小时
注册时间
2010-6-26
帖子
6474
7
发表于 2014-4-15 23:33:48 | 只看该作者
沙漠点灰 发表于 2014-4-15 23:12
4.15更新本贴: 界面草草图预览

@eve592370698  你要的界面来了

真不容易啊!希望稳定性别让大家失望。
潜水,专心忙活三次元工作了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
6
 楼主| 发表于 2014-4-15 23:12:45 | 只看该作者
4.15更新本贴: 界面草草图预览

@eve592370698  你要的界面来了{:2_254:}

点评

挺喜欢雅黑的(///▽///) @satgo1546  发表于 2014-4-21 18:21
看到界面就感觉那么大的MSYH字体作死啊! | 好厉害 Σ( ° △ °|||)︴(←这是什么表情  发表于 2014-4-18 20:09
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
1119 小时
注册时间
2012-7-24
帖子
600
5
发表于 2014-4-11 17:22:21 | 只看该作者
XP 系统被边缘化了,默默离开。
怕鼠的猫
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-11 21:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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