ZH-CN/Dgs

From Multi Theft Auto: Wiki

DGS Network Monitor

这是图形用户界面库,能够使你创建华丽的、可自定义的DirectX图形,摆脱原来的CEGUI。


全名 : Thisdp's DirectX Graphical User Interface System ( Dx GUI Lib )【灯泡的DX图形化用户界面】

作者 : thisdp

状态: 开源 & 正在开发

GitHub源码: https://github.com/thisdp/dgs/tree/master

Discord服务器: https://discord.gg/QEs8q6W

特性

DGSS.png


它是如何工作的?

  • DGS 的工作原理与CEGUI的差不多,基于 元素(element) 系统, 使用这种方案能够让开发者几乎不需要学习新的东西而直接使用DGS,因此比起其他的DxLib,更容易接受和理解。
  • DGS 元素在onClientRender事件下被渲染。有两个以上的表储存DGS元素。当onClientRender事件被触发,"for"循环将会计算每一个DGS元素。

有何不同?

  • 这个资源基于dx函数,这使得我们可以编辑GUI样式,让它变得更自定义化,可完全按照你的喜好来设置样式。
  • 拥有Style System(样式系统) 能够使开发者自定义他们的子集的样式,例如改变颜色、加载图片,甚至是加载着色器在DGS元素上,从而减少dgsSetProperty/dgsSetProperties的使用。

更新机制

  • DGS有一个更新机制,能够使你的DGS保持最新状态。
  • 当有新版本推送,它会检测到并且提醒你是否进行更新。
  • 执行"updatedgs"命令来进行DGS更新。
  • 你可以通过指令"dgsver"来查看当前DGS版本。

关于DGS

  • 这个项目启动于2014年.
  • Scroll Pane, Grid List, Combo Box, Memo and Edit Box使用Render Target,这意味着如果你没有足够的显存, Render Target将无法创建,因此,一些DGS元素无法显示出来
Example DGS Cmd

脚本例子

N++自动完成语法

故障排除

  • 你可以使用"debugdgs"命令来打开故障排除信息显示。

DGS类型

Hurt World GUI Example

基础组件

  • 3D Text(dgs-dx3dtext): 3D 文字
  • 3D Interface (dgs-dx3dinterface): 3D 面板
  • Browser (dgs-browser): DGS 浏览器(兼容所有浏览器函数)
  • Button (dgs-dxbutton): 按钮
  • Combo Box (dgs-dxcombobox + dgs-dxcombobox-Box) : 组合框
  • Check Box (dgs-dxcheckbox) : 复选框
  • Detect Area (dgs-dxdetectarea): 自定义监测区域
  • Edit (dgs-dxedit): 编辑框
  • Gridlist (dgs-dxgridlist): 网格列表
  • Image (dgs-dximage): 动态图片
  • Label (dgs-dxlabel): 文本标签
  • Memo (dgs-dxmemo): 多行编辑框
  • Progress Bar (dgs-dxprogressbar): 进度条
  • Radio Button (dgs-dxradiobutton): 单选框
  • ScrollBar (dgs-dxscrollbar): 滚动条
  • ScrollPane (dgs-dxscrollpane): 滚动面板
  • Switch Button(dgs-dxswitchbutton): 开关切换按钮
  • Tab Panel (dgs-dxtabpanel + dgs-dxtab): 标签面板
  • Window (dgs-dxwindow): 窗口

插件

  • Blur Box (dgs-dxblurbox): 高斯模糊区域
  • Color Picker (dgs-dxcolorpicker+dgs-dxcomponentselector): 颜色选取器
  • Effect 3D (dgs-dxeffect3d): 屏上鼠标跟随的3D效果
  • Mask (dgs-dxmask): 遮罩
  • Media Browser (dgs-dxmedia): 媒体浏览器,用于加载视频/音频/图片
  • Round Rectangle (dgs-dxroundrect): 圆角矩形
  • Object Preview Support (dgs-dxobjectpreviewhandle): 屏上Object预览支持插件
  • QRCode (dgs-dxqrcode): 二维码

Notice

  • 建议将资源名字改为'dgs'
  • 因为这是一个资源,所以如果你想使用其中的函数,请在函数前面加入导出函数前缀(exports.dgs:),像这样:
label = exports.dgs:dgsCreateLabel(0, 0, 0.5, 0.1, "text", true)
  • 这里有一个能够缩短导出前缀的方法:
DGS = exports.dgs --缩短导出前缀
label = DGS:dgsCreateLabel(0,0,0.5,0.1,"text",true) --创建一个文本标签
  • 在最新版本中,exports.dgs: 已经不再需要,可以使用如下代码代替:
loadstring(exports.dgs:dgsImportFunction())()-- 加载DGS函数
label = dgsCreateLabel(0,0,0.5,0.1,"text",true) --创建一个文字标签

面向对象的编程方式

loadstring(exports.dgs:dgsImportOOPClass())()-- 加载DGS的OOP类
window = DGSClass:createWindow(0,0,0.5,0.1,"test",true) --使用OOP创建窗口
label = window:createLabel(0,0,1,1,"label",true) --在窗口中创建文本标签
label.text = "DGS OOP Test" --设置文本

感谢他们的帮助 :

Example tab panel and label .
  • Axel: 给了我许多建议,提供了一些函数的实现方法。
  • Senpai: 帮助我编写维基。
  • ZoNe: 帮助我编写维基。
  • DiGiTal: 帮助我编写维基。
  • #Dv^: 帮助我编写维基。

-->特别感谢:

  • Ahmed Ly: 帮助我编写维基,并且发布了N++的自动完成库(虽然只支持部分DGS函数)。

DGS属性

General Properties

Unique Properties

客户端函数

Multi Language Supports

Animation

3D Interface

3D Text

Browser

Button

Check Box

Combo Box

Custom Renderer

Edit

Detect Area

Grid List

Image

Memo

Label

Progress Bar

Radio Button

Scroll Bar

Scroll Pane

Selector

Switch Button

Tab Panel

Window

Plugin

Blur Box

Color Picker

Canvas

Effect 3D

Media Browser

Mask

Nine Slice

Object Preview Supports

QRCode

Remote Image

Rounded Rectangle

客户端事件

Plugin

Media

Color Picker

QRCode

Remote Image

最后

欢迎各位大佬提建议、测试脚本、完成维基!