ZH-CN/Resource:DGS: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
m (Thisdp moved page ZH-CN/Resource:Dgs to ZH-CN/Resource:DGS)
 
(9 intermediate revisions by the same user not shown)
Line 2: Line 2:
[[Image:DGSNetStatus.png|300px|thumb|right|DGS Network Monitor]]
[[Image:DGSNetStatus.png|300px|thumb|right|DGS Network Monitor]]


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




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


'''作者''' : [[User:thisdp|thisdp]]  
'''作者''' : [[User:thisdp|thisdp]]  


'''状态''' : 开源(正在开发)
'''状态''': <span style="color:#FFFFFF;text-shadow:black 0em 0em 0.3em;">开源</span> & <span style="color:#55FF55;text-shadow:black 0em 0em 0.3em;">正在开发</span>
 
'''GitHub源码''' : https://github.com/thisdp/dgs/tree/master
 


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


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


=特性=
=特性=
Line 21: Line 20:




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


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


'''更新机制'''
'''更新机制'''
Line 37: Line 34:
*你可以通过指令"dgsver"来查看当前DGS版本。
*你可以通过指令"dgsver"来查看当前DGS版本。


 
'''关于DGS'''
'''更新日志'''
*这个项目启动于2014年.
*'''查看详细更新日志 : [http://angel.mtaip.cn:233/dgsUpdate/ 戳我]'''
*Scroll Pane, Grid List, Combo Box, Memo and Edit Box使用Render Target,这意味着如果你没有足够的显存, '''Render Target将无法创建''',因此,一些DGS元素无法显示出来
 


[[Image:Dx_7.PNG|400px|thumb|right|Example DGS Cmd]]  
[[Image:Dx_7.PNG|400px|thumb|right|Example DGS Cmd]]  
Line 47: Line 43:
*1.https://community.multitheftauto.com/index.php?p=resources&s=details&id=14757 By ([[User:Ahmed Ly|Ahmed Ly]] ,Mahmod Algeriany)
*1.https://community.multitheftauto.com/index.php?p=resources&s=details&id=14757 By ([[User:Ahmed Ly|Ahmed Ly]] ,Mahmod Algeriany)
*2.在 test.lua 文件中有很多例子,你可以去查看它。
*2.在 test.lua 文件中有很多例子,你可以去查看它。


'''N++自动完成语法'''
'''N++自动完成语法'''
*1.link:http://www.mediafire.com/file/m6dm7815d5dihax/lua.zip  By [[User:Ahmed Ly|Ahmed Ly]]  
*1.link:http://www.mediafire.com/file/m6dm7815d5dihax/lua.zip  By [[User:Ahmed Ly|Ahmed Ly]]  
*'''Note''':
*'''Note''':
*2.You must put it in file Notepad++\plugins\APIs.
*2.你必须把文件放入Notepad++\plugins\APIs.
*3.Not all of DGS Functions are added, but the rest will be added soon.
*3.不是所有DGS函数都在内。
 


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


===DGS类型===
[[Image:Dx Dgs.jpg|400px|thumb|right|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): 窗口


'''DGS类型'''
====插件====
[[Image:Dx Dgs.jpg|400px|thumb|right|Hurt World GUI Example]]
* Blur Box (dgs-dxblurbox): 高斯模糊区域
* Button (dgs-dxbutton): 按钮。
* Color Picker (dgs-dxcolorpicker+dgs-dxcomponentselector): 颜色选取器
* Command (dgs-dxcmd): 像windows那样的CMD。
* Effect 3D (dgs-dxeffect3d): 屏上鼠标跟随的3D效果
* Ellipse Detect Area (dgs-dxeda): 椭圆形检测区域。
* Mask (dgs-dxmask): 遮罩
* Edit (dgs-dxedit): 编辑框。
* Media Browser (dgs-dxmedia): 媒体浏览器,用于加载视频/音频/图片
* Memo (dgs-dxmemo): 多行编辑框。
* Round Rectangle (dgs-dxroundrect): 圆角矩形
* Gridlist (dgs-dxgridlist): 网格列表。
* Object Preview Support (dgs-dxobjectpreviewhandle): 屏上Object预览支持插件
* Image (dgs-dximage): 动态图片。
*QRCode (dgs-dxqrcode): 二维码
* Label (dgs-dxlabel): 文字标签。
* ScrollBar (dgs-dxscrollbar): 滚动条。
* ScrollPane (dgs-dxscrollpane): 滚动面板。
* Tab Panel (dgs-dxtabpanel + dgs-dxtab) : 标签面板。
* Window (dgs-dxwindow): 窗口。
* Progress Bar (dgs-dxprogressbar): 进度条。
* Radio Button (dgs-dxradiobutton): 单选框。
* Combo Box (dgs-dxcombobox + dgs-dxcombobox-Box) : 组合框。
* Check Box (dgs-dxcheckbox) : 复选框。
 


'''Notice'''
'''Notice'''
Line 84: Line 90:
*因为这是一个资源,所以如果你想使用其中的函数,请在函数前面加入导出函数前缀('''exports.dgs:'''),像这样:
*因为这是一个资源,所以如果你想使用其中的函数,请在函数前面加入导出函数前缀('''exports.dgs:'''),像这样:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
label = exports.dgs:dgsDxCreateLabel(0,0,0.5,0.1,"text",true)
label = exports.dgs:dgsCreateLabel(0, 0, 0.5, 0.1, "text", true)
</syntaxhighlight>
</syntaxhighlight>
*这里有一个能够缩短导出前缀的方法:
*这里有一个能够缩短导出前缀的方法:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
DGS = exports.dgs --缩短导出前缀
DGS = exports.dgs --缩短导出前缀
label = DGS:dgsDxCreateLabel(0,0,0.5,0.1,"text",false) --创建一个文字标签
label = DGS:dgsCreateLabel(0,0,0.5,0.1,"text",true) --创建一个文本标签
</syntaxhighlight>
*在最新版本中,'''exports.dgs:''' 已经不再需要,可以使用如下代码代替:
<syntaxhighlight lang="lua">
loadstring(exports.dgs:dgsImportFunction())()-- 加载DGS函数
label = dgsCreateLabel(0,0,0.5,0.1,"text",true) --创建一个文字标签
</syntaxhighlight>
'''面向对象的编程方式'''
<syntaxhighlight lang="lua">
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" --设置文本
</syntaxhighlight>
</syntaxhighlight>


'''感谢他们的帮助''' :
'''感谢他们的帮助''' :
Line 116: Line 133:
[[Category:Resource]]
[[Category:Resource]]


[[EN:Dgs]]
[[EN:Resource:Dgs]]
[[AR:Dgs]]
[[AR:Resource:Dgs]]
[[TR:Resource:Dgs]]

Latest revision as of 13:43, 29 January 2023

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 For DGS Core Elements

Extra Properties For DGS Plugins

客户端函数

Custom Cursor Functions

Multi Language Supports

Animation

3D Element

3D Interface

3D Line

3D Image

3D Text

Browser

Button

Check Box

Combo Box

Custom Renderer

Edit

Detect Area

Drag'N Drop

Grid List

Image

Memo

Menu

Label

Layout

Line

Progress Bar

Radio Button

Scale Pane

Scroll Bar

Scroll Pane

Selector

Style

Switch Button

Tab Panel

Window

Basic Shape Plugins

Circle

Quadrilateral

Rounded Rectangle

Other Plugins

Blur Box

Canvas

Chart

Color Picker

Effect 3D

Gradient

Mask

Media Browser

Nine Slice

Object Preview Supports

Paste Handler

QRCode

Remote Image

Screen Source

SVG

Tooltips

客户端事件

General

Check Box

Combo Box

Drag'N Drop

Edit

Grid List

Menu

Selector

Mouse

Radio Button

Switch Button

Tab

Animation

Plugin

Media

Color Picker

QRCode

Remote Image

最后

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