Godot Engine:GDScript 4.X中语法的变化(2020年8月4日 更新)

2023-05-16

文章目录

      • 4.X版 GDScript范例
      • 支持注解
      • 属性(Properties)的定义格式
      • await关键字代替yield
      • 加入super关键字
      • 去除了多级调用问题
      • 小结

4.X版 GDScript范例

在这里插入图片描述

支持注解

从4.x开始,GDScript将支持类似JAVA一样的注解机制,同时3.X时期存在的一些关键字将改用注解的方式。比如比较常用的export关键字,它会由一系列的注解来代替,比如用上面范例中的@export_range实现限定变量范围。并且,从4.x彻底不需要用类似export(int)的形式声明类型了,系统会从冒号后面的类型直符接识别其类型,比如@export var my_number: int

另外,以后为一个类声明类名后,想给它加个图标的话,可以直接用@icon@的引入使注解类代码和逻辑代码更清晰的区分开,同时GDScript也更加规范了。

属性(Properties)的定义格式

属性机制本质上是个语法糖,但实话说老版本GDScript中属性的定义比较麻烦且不美观,所以老王几乎很少定义属性。4.x后的属性直接借鉴了C#格式。这样就方便且美观多了。

var _hp:int
var hp:
	get:
		return _hp
	set(value):
		_hp = value

await关键字代替yield

老王之前写过几篇文章介绍GDScript的协程:
《GDScript:协程(Coroutine)(一)概念和使用范例》
《GDScript:协程(Coroutine)(二)简单粗暴实用至上的语法设计》
《Godot Engine:实用技巧之yield(owner, “ready”)》

新的await代替yield以后,语法也更加清晰了,比如:

await $Button.button_down

加入super关键字

以前要调用基类成员使用的是.,在4.x版本中加入了super关键字,并且提供了两种用法:

  • 在重写方法中调用基类同名方法
func _ready():
	super()
	dosometing...
  • 调用基类非同名方法
	super.function_name()

去除了多级调用问题

这个问题老王在《GDScript:关于派生类调用基类方法的一个注意事项》中也写过,确实是个容易产生歧义或误用的地方。在4.x中除非显式使用super关键字,否则基类的同名方法将不会被调用(尤其对于类似_process以及_ready这样的默认方法)

小结

目前新的GDScript已经合并入了4.x的主分支中,但是依然处于开发阶段。总的来说它的易用性和灵活性以及规范性都有了进一步的提升。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Godot Engine:GDScript 4.X中语法的变化(2020年8月4日 更新) 的相关文章

  • Docker下载与安装(2020)

    Docker下载与安装 Docker下载 进入网址下载稳定版 下载需要登录 xff0c 有账号就直接登录 xff0c 没有就注册 https hub docker com editions community docker ce deskt
  • CVPR 2020: VIBE: Video Inference for Human Body Pose and Shape Estimation 阅读随笔

    论文地址 Github地址 以下为我的OneNote阅读笔记 xff0c 为图片格式 xff0c 留言 邮件可发原文件
  • 2020-10-30

    Ubuntu nvidia显卡驱动安装 手动安装 xff1a 先在官网下载本机显卡对应支持的驱动 xff0c 一般选择run文件 xff1b 如果开启了nouveau驱动 xff0c 需要禁用 xff1b 进入tyy3命令行窗口 xff0c
  • 8个树莓派超级计算机_【2020-8-14】树莓派部署t265追踪摄像头实现无人机室内视觉定位...

    本文使用 Zhihu On VSCode 创作并发布 在之前的文章中 xff0c 我们已经成功在树莓派 xff08 ubuntu mate 18 04 xff09 上部署了T265的追踪摄像头 本文将利用MAVROS协议 xff0c 将T2
  • 2020.2.22 排位赛 G - Bucket Brigade(BFS)

    Bucket Brigade 题面 题目分析 BFS模板题 代码 span class token macro property span class token directive keyword include span span cl
  • Unreal Engine中的UHT和UBT

    UBT xff1a 附加在引擎之外的一个自定义工具 xff0c 用于管理跨各种构建配置 xff0c 来配置和构建 UE源码的过程 UHT xff1a 一个支持UObject系统的自定义解析和代码生成工具 目录 UBT xff08 Unrea
  • app的ajax请求数据,ajax请求从app engine获取数据

    为noob问题提前道歉 您好 xff0c 如何使用jQuery ajax从appengine服务器的Python端获取数据 xff1f 我知道如何使用ajax和适当的处理程序将数据发送到服务器 xff0c 但我想知道是否有人可以告诉我aja
  • 2020.10.22项目调试记录

    1 对于ROS项目 xff0c catkin make之后找不到可执行的launch文件 xff0c source devel setup bash之后还是无效 最后发现是对应的CMakeLists txt文件中某个语句的位置问题导致的 x
  • 2020/2/21 Linux Socket编程 高级篇——广播

    广播 xff1a 实现一对多的通信 SO BROADCAST选项 它控制了UDP套接字是否能发广播数据报 xff0c 选项类型是int xff0c 非零表示 是 只有UDP能用 xff0c TCP不能 如果是一个广播地址 xff0c 但SO
  • 2020-11-21

    xftp 提示无法显示远程文件夹 不是什么被动不被动的问题 是权限的问题 xff0c 如果这个文件夹有 34 x 34 权限 就可以打开 没有就不行
  • show engine innodb status解读

    注 xff1a 以下内容为根据 高性能mysql第三版 和 mysql技术内幕innodb存储引擎 的innodb status部分的个人理解 xff0c 如果有错误 xff0c 还望指正 xff01 xff01 innodb存储引擎在sh
  • Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)

    Matlab读取高光谱遥感数据 1 高光谱遥感数据简介2 两个开源的高光谱遥感数据集3 高光谱遥感数据常用格式3 1 Mat3 2 Tif 4 Matlab读取高光谱遥感数据4 1 Matlab读取 Mat格式的高光谱遥感数据4 1 1 M
  • 人工测试之代码检查、走查与评审

    人工测试方法 代码检查 代码走查 桌面检查 同行评审 代码检查与代码走查的联系 1 要求人们组成一个小组来完阅读或直观检查特定的程序 找出错误 但不必改正错误 2 都是对过去桌面检查过程 在提交测试前 由程序员阅读自己程序的过程 的改进 3
  • 如何创建没有 setter 函数的 getter 函数?

    我的脚本中有多个导出的变量 每当更改一个变量时 我想调用一个通用的 getter 并让值自动设置 tool export float var sample1 setget smthn changed export float var sam
  • 如何检测 Godot 中的碰撞?

    我有3个场景 一个名为 KinematicBody2D tscn 的 KinematicBody2D 节点 该场景是一个玩家在屏幕上从左向右移动 我还有一个名为 mob tscn 的场景 它是一个igidbody2d节点 这个场景只有精灵和
  • 如何在Godot 4.0游戏引擎中实现可组合的角色/技能系统?

    我目前正在使用 Godot 尝试 MOBA 风格游戏的原型 我正在努力寻找一种管理角色及其技能的方法 所有角色都将具有相似的属性 姓名 生命值 奔跑速度 力量等 然而 所有角色的技能都会有所不同 尽管有些角色非常相似 例如基于投射物的技能将
  • 如何获取另一个场景godot中的节点?

    我正在制作一个具有多个场景的游戏 需要有 get node 来自另一个场景的节点 变量 并且我不知道如何从另一个场景获取节点 如果我理解正确的话 您想连接到来自另一个场景中的节点的信号 直接方法会起作用 const bullet prelo
  • Godot:调用外部方法

    经过大量谷歌搜索 我仍然不明白什么可能是一个简单的解决方案 场景 主要 包含一个 TileMap Grid 并附有一个脚本 Grid gd 场景 玩家 包含一个 KinematicBody2D Player 及其附加脚本 Player gd
  • 传递Physics2DShapeQueryParameters 层进行检查

    我目前正在为我的 2D 自上而下游戏开发一个构建系统 最后一步是检查是否有任何物体 例如树或玩家 阻碍了物品的放置 经过一些研究后 我发现使用Physics2DShapeQueryParameters 是正确的方法 我唯一的问题是我不知道如
  • Godot 3d 得到向前矢量

    我想知道是否有办法获取 godot 3d 中空间节点的前向向量 统一起来 这就是transform forward Godot 给了我一个旋转向量 但我不知道如何将其转换为方向向量 戈多版本的transform forward是什么 前进是

随机推荐

  • Linux系统的休眠与唤醒简介

    转文地址 xff1a http blog 163 com jiaguang3010717 64 126 blog static 1268082432010310103037253 系统挂起 xff08 Suspend xff09 是电源管理
  • intellij idea cpu占用率太大太满 运行速度太慢 使了五个解决方法最终成功

    突然发现 xff0c intellij idea 特别卡 xff0c 在代码间移动的时候 xff0c 居然刷新都跟不上 xff0c 然后打开任务管理器一看 xff0c CPU占用率100 intellij idea自己一个程序的占用率就高达
  • Ubuntu21.04安装cuda10.2和cudnn

    系统 xff1a Ubuntu21 04 显卡 xff1a NVIDIA 1080Ti cuda是NVIDIA公司设计用来加速GPU训练的 xff0c 而cudnn则是可以把cuda应用到深度学习领域 xff0c 如果想用GPU跑深度神经网
  • 基于C语言的状态机实现技术

    一 简介 有限状态机是一种用来进行对象行为建模的工具 xff0c 其作用主要是描述对象在它的生命周期内所经历的状态序列 xff0c 以及如何响应来自外界的各种事件 有限状态机 xff08 Finite State Machine或者Fini
  • wampserve详细安装教程(手把手教你搭建)

    前提提醒 xff1a 如果你为纯小白直接按照操作步骤进行即可 xff08 忽略进阶教程 xff09 xff0c 如果你知道进阶教程是什么可参照教程中的非小白步骤 使用前请关闭其他本地环境软件 xff0c 否则会出现冲突 该教程为本地环境搭建
  • Ubuntu18.04扩展home目录分区记录

    前言 最近Ubuntu18 04系统的home目录空间不够用了 xff0c 之前安装系统的时候 xff0c 给home分配的空间只占了根目录的很小一部分 xff0c 因此就想把根目录的空余空间转给home 涉及到系统分区调整 xff0c 因
  • 优化后亲测可用!免费下载QQ音乐大部分资源

    音乐下载器 优化后亲测可用 xff01 免费下载QQ音乐大部分资源 眼看着网上许多下歌的插件用不了了 xff0c 又不想买VIP xff0c 便非常着急 突然我想到了接口这玩意儿 xff0c 于是我 奥我真是个人才 xff01 突然我看见了
  • 自动祝福程序(定时发送消息)

    有个同学找我帮忙 xff1a 明天是她朋友的生日 xff0c 但她没时间发送祝福 xff0c 问我能不能弄个自动发送 我想 xff0c QQ并没有内置的定时发送功能 xff0c 紧接着又想起了QQ刷屏助手 xff08 见我以前的博文 xff
  • 停更

    停更CSDN CSDN是我的第一个博客 xff0c 它也很完美 xff0c 但我的博客经常没能通过它的审核 xff0c 用起来很不爽 因此 xff0c 我决定停更CSDN xff0c 以后的博客都将发布到博客园 新博客链接 https ww
  • 停更规则更新

    我觉得嘛 来这里写东西点击量更高 所以以后软件不在这里发 其他的东西我还是会更新的 xff01 另外 xff0c 我会设定从WordPress个人博客上进行博客搬家 xff0c 不过 xff0c 除了上面所谓的 其他东西 以外 xff0c
  • 免费建站记

    好久不见 xff01 另外 xff0c 我可能还会发布一篇国内操作系统的测评记录 xff08 会不会发布取决于我写不写得完 xff09 首先 xff0c 这篇文章是从我个人博客上搬运的 xff0c 所以可能有些地方会有格式上的不正确 xff
  • 如果没有Linux,这个世界会怎样?

    众所周知 xff0c Linux是一个开源的操作系统 自从它流行起来 xff0c 微软就渐渐失去了地位 Linux在我们生活中的每一处 xff0c 但是 xff0c 假如没有Linux这一些开源操作系统 xff0c 会发生什么 xff1f
  • 音乐播放器

    完善音乐下载器时找到一个音乐播放器 xff0c 自己完善了下 软件原作者 xff1a 嘟嘟还没长大 完善内容 支持文件拖动打开 支持自动获取必应每日一图并显示 随机播放支持选择路径 代码 span class token keyword i
  • Python Tkinter颜色参考程序

    这是一个颜色参考程序 xff0c Python程序员专用 点击任意颜色可以复制颜色的英文名称 已经修改前景色 xff0c 所有字都看得清 xff08 终于找到一件比肝作业更累的事情 xff09 话不多说 xff0c 贴代码 代码 span
  • 脚本控制nginx

    以下 etc init d nginx 文件的内容 bin bash nginx Startup script for the Nginx HTTP Server it is v 0 0 2 version chkconfig 85 15
  • 关于计算机系统基础debian 11安装(感觉也适用debian10啥的)

    一定要记住自己起的用户名 xff01 xff01 xff01 xff01 xff01 xff01 xff01 还要记得自己的密码 额 xff0c 这门课程需要安装virtualbox和debian xff0c 有的同学会像我一样为此苦恼 x
  • android获取wifi的IP,子网掩码,网关,dns等信息

    使用 DhcpInfo 获取这些信息 xff0c 返回的是一个int型数据 xff0c 转换下得到想要的信息 xff0c 代码如下 xff1a public class MainActivity extends Activity priva
  • 【iOS开发-画线】使用贝塞尔曲线(UIBezierPath)画线

    步骤 xff1a span class hljs comment 创建贝塞尔曲线对象 span UIBezierPath span class hljs variable currenPath span 61 UIBezierPath be
  • 电脑连接无线路由上不了网 连接手机热点却可以上网

    mercury wireless n adapter 外置无线网卡 1 在网络设置中删除连接过的无线网络 2 设备管理器 网卡右键 属性 高级 wifi config wifi xff08 代替performance xff09 3 ban
  • Godot Engine:GDScript 4.X中语法的变化(2020年8月4日 更新)

    文章目录 4 X版 GDScript范例支持注解属性 xff08 Properties xff09 的定义格式await关键字代替yield加入super关键字去除了多级调用问题小结 4 X版 GDScript范例 支持注解 从4 x开始