查看: 7392|回复: 10

[RMVA发布] 新界面系统 2.01【3.15更新:修复了复位功能的又又一个BUG】

[复制链接]
梦石
0
星屑
2284
在线时间
744 小时
注册时间
2010-9-6
回帖
297
发表于 2015-2-18 13:40:46 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 804173948 于 2015-7-5 18:11 编辑

我就直接用脚本中的简介了:
不不不,首先应该放视频:



看不到的话点击这里
   
    说明:
        本系统灵感和启发来自 尽头君
        本系统欢迎广大RMer使用、研究、改进、完善
        感谢大家使用

        
   简介:
        本系统其实是用一个新的界面系统 NIS 取代了RM默认的 Window 窗口系统。
        但是严格来说,两者可以同时使用。
        因为它们既有各自的长处也有短处,所以不一定就是我这个系统就比 Window 好,主要还是看个人爱好。
        其实本系统的根本是 NIS_Base 脚本,由于这是简介就不在这里详细讲。
        就简单地说,NIS_Base 在本系统地位等同于 Window类 在默认窗口系统中的地位。
        一个NIS_Base中,包含了一个显示端口(Viewport),一个精灵(Sprite)和若干个控件(NIS_Object)
        本系统最大的的特点是抛弃了原有窗口系统的窗口风格(就是用窗口皮肤绘制窗口那些),可以自行绘制窗口,同时可以自定义操控窗口的移动。
        但由于没有原有的窗口风格,所以无法自动生成窗口,用于本系统的所有窗口必须自己或找人来画,但这样就能比较接近网游的感觉吧。


    更新历史:
      2015.2.18  V.1.00
        发布
      2015.2.20  V.1.01
        写了一篇介绍
        修复了 draw_colorful_text 的一个 bug(Game_Base 167~224 行)
        新增 ProgressBar 控件(Game_ProgressBar)

      2015.3.14  V.2.00
        取消了所有控件初始化里的 Viewport 参数
        重写、整理了所有脚本,并把所有的Game_XXX改为NIS_XXX
        原Game_InfoContents正式成为控件(和Sprite脱离了父类和子类的关系)
        新增脚本
           核心脚本:NIS_Window,NIS_Object,NIS_Interface,NIS_GroupObject,NIS_Array;
           控件:NIS_Caret;
           组合控件:NIS_WindowBlock
        原Game_ItemList与原Game_Command合并(成为父类和子类的关系)
      2015.3.15  V.2.01
        修复了复位功能的 bug(NIS_Window 34~56 行 NIS_Object 45~67 行)

   
   合适人群:
        有一定的绘图基础(至少要了解一些作图软件的用法) & 一定的脚本基础(能够独自编写一些简单的脚本) & 对RGSS有大概的理解(明白 Window、Viewport、Sprite 是什么);
        新手、小白不建议,除非身边有脚本工和美工
        理由如下:
          第一:本系统要绘制大量窗口图片,新手如果没有这样的能力就去找美工或者放弃吧;
          第二:本系统需要设置每一个窗口和控件的坐标,真正要应用到游戏中还要能够自己写一个界面才行,虽然已经简化了许多,但还需要一定的脚本基础,如果没有就只能找脚本工或者放弃了;
          第三:需要理解本系统,至少要理解个大概,但如果连显示端口(Viewport)、精灵(Sprite)都不知道这样就难办了。

   
   答疑:
       Q:我的工程做了一半,突然想用这个系统怎么办?
        A:如果你有耐心和能力的话,可以重新用这个系统把你工程的所有(或部分)界面都写出来,但是我不建议这么做,因为这工程量较大,所以最好是新工程一开始就用本系统。
       Q:这是新界面系统,会不会和旧的窗口系统有冲突?
        A:不会,如果你运用得当还可以两个系统相结合使用。
        Q:是不是要修改大量脚本?
        A:是,不过经过简化相对于第一代是方便了许多,只要稍加理解本系统即可。
       Q:可以做仿网游吗?
        A:有能力的话,完全可以,这个系统就是为了仿网游才编写的。
        有待增加~

        
   BUG:
        ListBox 和 TypeField 两个控件会有比较多 BUG ,请期待以后的更新

        
    使用方法及一些格式:
        这里一时说不完,在脚本里会有详细说明

        
[fold=核心详解(有兴趣了解本系统的请看)]    核心详解(有兴趣了解本系统的请看):
        本系统的核心是 NIS_Base ,NIS_Window ,NIS_Object ,NIS_Interface ,NIS_GroupObject ,NIS_Selectable ,NIS_Array ,NIS_WindowBlock
        其中,NIS_Base 是一切该系统的脚本的核心
              NIS_Window 父类是 NIS_Base ,是窗口类,窗口就是一个此类的实例
              NIS_Object 父类是 NIS_Base ,是所以控件的父类,创建一个控件要继承此类
              NIS_Interface 父类是 NIS_Base ,是所有界面的父类,创建一个界面要继承此类
              NIS_GroupObject 父类是 NIS_Object ,是所有组合控件的父类
              NIS_Selectable 父类是 NIS_Object ,是拥有光标功能的控件
              NIS_Array 父类是 NIS_GroupObject ,就是控件的数组
              NIS_WindowBlock 父类是 NIS_GroupObject ,是窗口的组合控件
        NIS_Base:
          initialize(x,y,bitmap)
            创建 viewport 属性(显示端口,Viewport.new(x,y,bitmap.width,bitmap.height))
            创建 window 属性(精灵,精灵的显示端口为 viewport ,位图为 bitmap)
            初始化其他属性
          属性:
            super_window  父窗口,用法要看你们(类型为 NIS_Base)
            status        状态,默认是:open,用法要看你们(类型为 Symbol)
            opacity_rate  透明度每帧增加(类型为 Integer)
            move_rate     移动速率(每帧增加)(类型为 Integer)
            final_x       最终x坐标(窗口移动有关)(类型为 Integer)
            final_y       最终y坐标(窗口移动有关)(类型为 Integer)
            viewport      窗口所在的显示端口(类型为 Viewport)
            window        窗口精灵(类型为 Sprite)
            visible       窗口是否可见(为 true 或 false)
            active        窗口是否激活(可以理解为每一帧是否运行update?)(为 true 或 false)
            object        窗口控件(只读,可用 add_object 方法写入,del_object 方法移除)(类型为 Hash,值为 NIS_Object)
        
        NIS_Window:
          initialize(x,y,bitmap,final_x=0,final_y=0,active=true,opacity=255,opacity_rate=10,move_rate=4,objects=[],opers=[])
            super(x,y,bitmap)
            初始化属性
            添加控件 即 objects 里面的控件
            
        NIS_Object:
          initialize(x,y,bitmap,opacity_rate = 10,move_rate = 4,super_window = nil)
            初始化属性   
            创建 viewport 属性(显示端口,Viewport.new)
            创建 window 属性(精灵,精灵的 x,y 分别为 x , x,位图为 bitmap)
          属性:
            opacity  透明度(类型为 Integer)
            x        x 坐标(类型为 Integer)
            y        y 坐标(类型为 Integer)
            z        z 坐标(类型为 Integer)
            
        NIS_Interface:
          initialize(x,y,background,object)
            super(x,y,background)
            添加控件 即 objects 里面的控件
          属性:
            object  窗口控件(值类型为 NIS_WindowBlock)
            
        NIS_GroupObject:
          initialize(object,viewport=nil,super_window=nil)
            初始化属性   
            添加控件 即 object 里面的控件
            
        NIS_Selectable:
          initialize(x,y,bitmap,opacity_rate = 10,move_rate = 4,super_window = nil)
            super(x,y,bitmap,opacity_rate,move_rate,super_window)
            初始化属性   
          属性:
            index         光标位置(类型为 Integer)
            help_window   帮助窗口(类型为 NIS_Base)
            cursor_fix    光标固定的标志(为 true 或 false)
            cursor_all    光标全选择的标志(为 true 或 false)
            
        NIS_Array:
          initialize(object,viewport=nil,super_window=nil)
            super(object,viewport,super_window)
            
        NIS_WindowBlock:
          initialize(windows,opers=[])
            初始化属性
            添加控件 即 objects 里面的控件 [/fold]

附件(不含DLL):
PS.脚本里面带"*"的是修改过的或者新增的脚本

新界面系统.zip (2.11 MB, 下载次数: 527, 售价: 2 星屑)



      

评分

参与人数 7星屑 +550 收起 理由
鑫晴 + 166 精品文章
黑白界 + 100 精品文章
月华风 + 34 = = 给我免费
rpg-sheep + 10 精品文章
欧买歌 + 20 精品文章
taroxd + 200 精品文章
国产吃货 + 20 很棒的作品,加油!

查看全部评分

undefined
梦石
0
星屑
138
在线时间
304 小时
注册时间
2014-4-11
回帖
319
发表于 2015-2-18 13:46:10 | 显示全部楼层
不明觉历顺便抱走
人生是一场漫长的自杀。
回复

使用道具 举报

梦石
0
星屑
701
在线时间
511 小时
注册时间
2012-4-8
回帖
193
发表于 2015-2-18 15:24:50 | 显示全部楼层
好厉害!
我就一直想做一个类似的系统,结果因为除了窗口什么都不会写,做了个四不像。。
楼主脚本学了多久啊?

点评

2年多吧。。  发表于 2015-2-18 15:49
武侠|养成|战棋游戏《以武证道》头秃开发中...
开发日记在此
回复

使用道具 举报

梦石
0
星屑
39
在线时间
166 小时
注册时间
2011-11-21
回帖
45
发表于 2015-2-18 21:47:54 | 显示全部楼层
已跪,就是在找這種UI啊!
我會努力研究他的,非常感謝。
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2015-2-18 22:56:01 | 显示全部楼层
控件和原来的脚本能同时用吗?
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
2284
在线时间
744 小时
注册时间
2010-9-6
回帖
297
 楼主| 发表于 2015-2-19 00:38:10 | 显示全部楼层
chd114 发表于 2015-2-18 22:56
控件和原来的脚本能同时用吗?

一般应该只要和Game_Base和Game_InfoContents同时用就可以吧、、?不过具体要看看这个控件有没有用到其他控件,比如说Game_ListBox,还用到了Game_Group和Game_List
undefined
回复

使用道具 举报

梦石
0
星屑
50
在线时间
70 小时
注册时间
2014-10-11
回帖
38
发表于 2015-2-19 19:23:20 | 显示全部楼层
楼主 你的作品我很喜欢 你能做一款XP的吗
回复

使用道具 举报

梦石
0
星屑
2284
在线时间
744 小时
注册时间
2010-9-6
回帖
297
 楼主| 发表于 2015-3-14 19:55:39 | 显示全部楼层
2.00版更新,然后自顶一下...
有了视频应该能容易了解吧-。-
不过该修改的Bug还是没有修改hhh
undefined
回复

使用道具 举报

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

开拓者短篇九导演组冠军

发表于 2015-3-14 20:27:03 | 显示全部楼层
804173948 发表于 2015-3-14 19:55
2.00版更新,然后自顶一下...
有了视频应该能容易了解吧-。-
不过该修改的Bug还是没有修改hhh ...

System/NetGame 这个dll也没有附带么…………

点评

好吧....已更新  发表于 2015-3-14 20:36
回复

使用道具 举报

梦石
0
星屑
329
在线时间
286 小时
注册时间
2012-11-11
回帖
219
发表于 2015-3-14 23:22:04 | 显示全部楼层
不错,抱走了
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部