目录

  • 响应式GUI
    • 5种常见UI元素
    • 有两个工作流程可以构建响应性UI
    • 使用锚点精确放置UI元素
    • 如何更改锚点
    • 锚是相对于父容器的
    • 边距随锚点而变化

响应式GUI

在设计界面时仅使用Control节点。 它们具有独特的属性,可以让它们彼此协同工作。 其他节点,如Node2D,Sprite等将无法正常工作。 您仍然可以使用一些与其他节点一起工作的节点,例如AnimationPlayer,Tween或StreamPlayer。 Control节点是CanvasItems,像Node2D,因此您可以将着色器应用于它们。
所有Control节点都具有相同的主要属性:

  1. Anchor
  2. Bounding rectangle边界矩形
  3. Focus and focus neighbor 焦点和焦点邻居
  4. Size flags 大小标识
  5. Margin边距
  6. The optional UI theme可选UI主题

5种常见UI元素

对于大多数游戏,您只需要五种类型的UI元素和一些容器。 这五个Control节点是:

Label:用于显示文字
TextureRect:主要用于背景或所有应该是静态图像的东西
TextureProgress:用于生命条 ,加载进度条,水平,垂直或径向
NinePatchRect:用于可伸缩面板
TextureButton:用于创建按钮

有两个工作流程可以构建响应性UI

在Godot中,有两个工作流程可以构建可伸缩和灵活的界面:

1.您有许多容器节点可供使用,这些节点可伸缩和放置UI元素。他们控制他们的子节点。
2.另一方面,您有布局菜单。 它可以帮助您在其父级中锚定,放置和调整UI元素的大小。

这两种方法并不总是兼容的。 由于容器控制其子级,因此无法在其子级使用布局菜单。 每个容器都有特定的效果,因此您可能需要嵌套其中的几个以获得工作界面。 通过布局方法,您可以自下而上地对子级进行工作。 由于您没有在场景中插入额外的容器,因此可以实现更清晰的层次结构,但是在行,列,网格等中排列项目会更加困难。

使用锚点精确放置UI元素

控制节点具有位置和大小,但它们也具有锚点和边距。 锚定义节点的左边,顶边,右边和底边的原点或参考点。 更改4个锚点中的任何一个以更改边距的参考点。

如何更改锚点

与任何属性一样,您可以在Inspector中编辑4个锚点,但这不是最方便的方法。 选择控制节点时,布局菜单将显示在视口上方的工具栏中。 它为您提供了一个图标列表,只需单击一下即可设置所有4个锚点,而不是使用检查器的4个属性。 只有在选择控制节点时才会显示布局菜单。

锚是相对于父容器的

每个锚的值介于0和1之间。对于左侧和顶部锚,值为0表示没有任何边距情况下,节点的边缘将与其父级的左边缘和上边缘对齐。 对于右边和底边,值为1意味着它们将与父容器的右边和底边对齐。 另一方面,边距表示到锚位置的距离(以像素为单位),而锚则相对于父容器的大小。

边距随锚点而变化

移动控件节点或调整控件节点大小时,边距会自动更新。 它们表示从控制节点的边缘到相对于父控制节点或容器的锚的距离。 这就是为什么你的控制节点应该总是在容器内,我们马上就会看到。 如果没有父级,则边距将相对于节点自己的矩形边界(在检查器中Rect分段设置)。

尝试更改锚或在容器中嵌套Control节点:边距将更新。 您很少需要手动编辑边距。 总是试着找一个容器来帮助你; Godot带有许多节点,可以为您解决所有常见情况。 需要在生命条和屏幕边框之间添加空间? 使用MarginContainer。 想要建立一个纵向菜单? 使用VBoxContainer。 更多信息请参见下文。

Godot GUI探讨相关推荐

  1. Golang的GUI探讨:不要在一棵树上吊死,要在多棵树上

    原文: Golang的GUI探讨:不要在一棵树上吊死,要在多棵树上 • 腾图工作室,威远博客,威远工作室,Ease 关于Golang开发GUI界面始终是一个问题,似乎没有大家公认比较好的简单方法. 我 ...

  2. ATL的GUI程序设计(3)

    第三章 ATL的窗口类 CWindowImpl.CWindow.CWinTraits,ATL窗口类的奥秘尽在此三者之中.在本章里,李马将为你详细解说它们的使用方法.另外,本章的内容也可以算是本书的核心 ...

  3. CLI or GUI --- 要高效还是要易用? (该文作者的功底真的很深厚啊)

     目录(?) [+] 这篇文章很棒 转载过来欣赏地址httpwwwcnitblogcomaddonearchive2008010838581html 要高效还是要易用谈CLI与GUI 前言 定义 ...

  4. 图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)

    Android 的窗口管理系统 (View, Canvas, WindowManager) 在图解Android - Zygote 和 System Server 启动分析一 文里,我们已经知道And ...

  5. 【Java】浅谈Java的GUI开发

    GUI是什么? 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面. 图形用户界面是一种人与计算机通信的界面显示格 ...

  6. gui界面如何和内核链接 python_专栏 | 除了内核程序,Abaqus还能这样做二次开发...

    阿 伟 CAE工程师 六年CAE经验擅长Abaqus python和HyperWorks的二次开发,熟练掌握的开发语言有python和tcl/tk.文末附<Abaqus主窗口GUI的二次开发&g ...

  7. JAVA GUI THREAD---***

    针对用户界面的多线程 GUI下面的多线程方式 1.与GUI类分离方式 分离方式,在创建线程类实例时需要代入GUI句柄,通过GUI句柄操作GUI,也就是说线程类和GUI类都要有对方的实例,以便相互操作. ...

  8. 2000页Python系列PPT分享九:(GUI编程)(122页)

    总体说明:本套PPT共约2000页,包含董付国老师Python系列图书<Python程序设计基础(第2版)>(2018年8月第4次印刷).<Python程序设计(第2版)>(2 ...

  9. PAGE:像Visual Studio一样设计Python GUI窗体

    虽然使用标准库tkinter开发Python GUI程序很方便,也提供了强大的功能,但是窗体上的一切都需要程序员使用代码来控制,在页面布局上浪费大量时间,确实不是很方便.今天我们来介绍一个叫做PAGE ...

  10. python qt库,用于 Python 的高级 GUI 库(Qt 和 PyQt)(1)Unix系统 -电脑资料

    Qt 工具箱是一个使用广泛的跨平台 GUI 工具箱,可用于 Windows .Linux.Mac OSX 和许多手持平台, Qt 工具箱是一个使用广泛的跨平台 GUI 工具箱,可用于Windows.L ...

最新文章

  1. spi收发时的寄存器sr不变_我与SPI 的夜晚,只能说逻辑分析仪太次了
  2. python通过ftp上传文本文件storlines怎么用_用python将本地文件上传到FTP报错
  3. 数据结构-编程实现一个双链表的建立,双链表的打印,双链表的测长
  4. 与狼共舞·美女与野兽
  5. 开源GIS库GDAL/GEOS在Windows下的编译与 Codeblocks配置
  6. Silverlight 4之旅(三)数据绑定(中)
  7. Thinkpad SL400安装黑苹果10.8.4全纪录
  8. Androidstudio抽取成员变量快捷键 快捷键大全 自定义setting文件
  9. Python成员运算符
  10. 互盾科技:智慧源于勤奋,伟大出自平凡
  11. 2、ARM嵌入式系统:LED初始化
  12. du和df命令的区别
  13. 免费的.netFramework 混淆工具 Babel obfuscator GUI
  14. java雷霆战机项目收获_java实习项目_雷霆战机
  15. 蓝凌工作ekp开发使用一些js编写开发记录
  16. Tuxera NTFS2023免费版Mac电脑系统读写软件
  17. 状态栏和导航栏重叠,解决办法
  18. CCRC信息安全服务资质证书办理条件有哪些?
  19. Spring 4 - AOP
  20. MS VS+HIK海康机器人工业相机环境配置

热门文章

  1. 【转】专利申请前的技术交底书是什么?怎么写?
  2. iOS-深拷贝和浅拷贝
  3. 根据车辆型号自动生成车辆编号
  4. Java map转list
  5. ADC/DAC信噪比计算(单音/宽带信号)
  6. Java基础知识面试复习大纲
  7. typedef的使用详解
  8. 截止失真放大电路_音频放大器结构组成_音频放大器分类
  9. 微信小程序中,数字等宽字体
  10. ue4 unreal 使用 Download Image 下载图片 下载多张图片 批量下载 类似untiy协程