如何在 GDScript 中实现结构?

2023-12-20

GDScript 中是否有相当于 C# 结构/类的东西? 例如。

struct Player
{
     string Name;
     int Level;
}

戈多3.1.1gdscript不支持structs,但使用可以实现类似的结果classes, dict or lua style table syntax

http://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/gdscript_basics.html http://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/gdscript_basics.html

GDScript 可以包含多个内部类,创建一个具有适当属性的内部类,模仿上面的示例:

class Player:
    var Name: String
    var Level: int

这是使用该 Player 类的完整示例:

extends Node2D

class Player:
    var Name: String
    var Level: int

func _ready() -> void:
    var player = Player.new()
    player.Name  = "Hello World"
    player.Level = 60

    print (player.Name, ", ", player.Level)
    #prints out: Hello World, 60

您还可以使用 Lua 风格的表语法:

extends Node2D

#Example obtained from the official Godot gdscript_basics.html  
var d = {
    test22 = "value",
    some_key = 2,
    other_key = [2, 3, 4],
    more_key = "Hello"
}

func _ready() -> void:
    print (d.test22)
    #prints: value

    d.test22 = "HelloLuaStyle"
    print (d.test22)
    #prints: HelloLuaStyle

仔细查看官方文档进行细分:

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

如何在 GDScript 中实现结构? 的相关文章

  • 【Godot】行为树(一)了解与设计行为树代码

    行为树介绍 行为树是个节点树 xff0c 父节点通过不断遍历子节点 xff0c 根据不同类型的节点执行不同的分支 最终调用叶节点执行功能 行为树也不难理解 xff0c 他就像代码逻辑一样 xff0c 只是用节点的方式展现出来 xff0c 而
  • 【Godot 4.0】一个简单的匿名方法的使用lambda

    Godot 4 0 beta3 Godot 4 0 中添加了 lambda 表达式 xff0c 匿名方法等很多方便的特性 xff0c 这里我写个用于扫描目录下所有文件的功能 可以看到代码非常简洁 span class token keywo
  • Godot Engine:GDScript 4.X中语法的变化(2020年8月4日 更新)

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

    花了两天时间 做了一个初步的图形软件效果 先占个坑 以后再叙
  • 关于在windows使用msys2 + mingw + gcc/g++ 编译godot的笔记

    关于在windows使用msys2 mingw gcc g 编译godot的笔记 编译参数 1 target release debug release debug 2 多线程参数 j数字 3 profile是自定义构建参数 可以启用或者禁
  • 戈多3.2.1。刷新查询时无法更改此状态。使用 call_deferred() 或 set_deferred() 来更改监控状态

    在我的 2D 游戏中 玩家能够摧毁箱子 具有两种碰撞形状的物体 当被摧毁时 板条箱会产生也具有碰撞形状的物品 但是当调用以下函数时 Godot控制台中会显示许多类似的错误 Code func on Crate item dropped co
  • 合并多个精灵节点?

    例如 假设我有 2 个精灵节点 但也可以超过 2 个 如下所示 每个人都有自己独立的图像我想要的是将它们组合起来并用单个图像创建一个新的精灵节点 在工具模式下 like this 也许可以通过使用Image 毫无疑问涉及计算 或者也许使用一
  • 如何检测 Godot 中的碰撞?

    我有3个场景 一个名为 KinematicBody2D tscn 的 KinematicBody2D 节点 该场景是一个玩家在屏幕上从左向右移动 我还有一个名为 mob tscn 的场景 它是一个igidbody2d节点 这个场景只有精灵和
  • (Godot 引擎)用 Tilemap 瓷砖填充 2D 多边形

    我在 Godot 引擎中遇到一个无法解决的问题 怎么可能 在代码中 用图块填充 Polygon2D 区域 我尝试过获得点位置 使用 2D for 循环遍历线的顶点 但我无法理解这一点 这是我期待的结果的模型 我有解决方案 有一点 hacky
  • 如何在Godot 4.0游戏引擎中实现可组合的角色/技能系统?

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

    我有以下场景 玩家 敌人 攻击 当攻击与敌人发生碰撞时 敌人会发出 onHit 信号 播放器监听该信号并反弹 这一切都运行良好 但现在如果我复制敌人 因此有多个敌人场景 我如何收听所有敌人的信号 有没有办法获取场景的所有实例并连接到它们的所
  • 在 godot 游戏引擎中使用不同的编程语言?

    我想要将不同的编程语言绑定到 Godot 游戏引擎 有关于这个主题的指导文件或视频吗 例如 这个项目是如何完成的 戈多锈 https github com godot rust godot rust 如果我能学习基础知识 我就能成功地用不同
  • 安卓:应用程序未安装

    这里是新手 我用Godot游戏引擎制作了我的第一个游戏并成功导出到android 复制到我的手机上 它安装并运行良好 几个小时后 我做了一些更改并再次导出 再次复制了 apk 但现在当我尝试安装它时 它没有完成安装 我多次尝试更改导出设置
  • 如何在 Godot 中将字符串转换为枚举?

    使用 Godot 3 4 我的枚举设置为 enum STRENGTH DEXTERITY CONSTITUTION INTELLIGENCE WISDOM CHARISMA 我希望能够使字符串 STRENGTH 返回枚举值 0 我希望下面的
  • Godot:调用外部方法

    经过大量谷歌搜索 我仍然不明白什么可能是一个简单的解决方案 场景 主要 包含一个 TileMap Grid 并附有一个脚本 Grid gd 场景 玩家 包含一个 KinematicBody2D Player 及其附加脚本 Player gd
  • 如何克服 Godot 将按钮字体更改为默认颜色的问题?

    我正在使用 Godot 4 我在容器中手动创建了很多按钮 我在主场景中设置了一个颜色变量 tempcol 当我单击带有 tempcol 设置的按钮时 比如 Color Red 按钮的字体颜色更改为白色 似乎是默认字体颜色 但是当我单击另一个
  • 传递Physics2DShapeQueryParameters 层进行检查

    我目前正在为我的 2D 自上而下游戏开发一个构建系统 最后一步是检查是否有任何物体 例如树或玩家 阻碍了物品的放置 经过一些研究后 我发现使用Physics2DShapeQueryParameters 是正确的方法 我唯一的问题是我不知道如
  • 同一节点的碰撞检测和重叠检测? [第2部分]

    的延续上一个问题 https stackoverflow com questions 71608423 collision detection and overlapping detection in same node 71622366
  • 如何应用着色器并仅生成图像一次?

    我正在尝试将像素化着色器应用于我的纹理 并且我只需要将其应用一次 之后我可以一遍又一遍地重复使用我的着色器生成的图像作为纹理 而不必每次都进行计算 那么我如何拍摄一些图像 gt 应用着色器并在每次游戏加载时仅渲染它们一次 gt 并将它们用作
  • 关闭 Godot 中的游戏

    我正在使用 Godot 创建网页游戏 为了关闭游戏 我尝试使用 get tree quit 如果我在 IDE 上使用它 它就可以工作 当我在我的服务器上尝试它时 导出项目后 它不起作用 我确信导出设置没问题 我怎样才能关闭游戏 并且 如何添

随机推荐

  • 通用实体基类

    我刚刚读过一篇关于通用实体基类的文章 简单地说 如果我没有错的话 后面的主要思想是在一个接口中收集所有通用的 非实体特定的字段 而不是在主要实体中实现它 这将是一篇 TL DR 让我们看一些代码 这是基本实体接口及其对另一个接口的通用实现
  • 使用 JavaScript 和 JSON 在 Web 应用程序中进行本地化

    我正在尝试设置一个脚本来自动本地化 Web 应用程序 由于Web应用程序旨在使用HTML5的离线缓存功能 因此它需要能够离线工作 因此 在我看来 JavaScript 是最好的选择 我更喜欢将所有本地化的所有字符串放在一个 JSON 文件中
  • Lucene实体提取

    给定实体术语的有限字典 我正在寻找一种使用 Lucene 进行智能标记的实体提取的方法 目前我已经能够将 Lucene 用于 搜索具有一定模糊性的复杂短语 突出显示结果 但是 我不知道如何 获取匹配短语的准确偏移量 为每场比赛进行特定于实体
  • 改进了 Google Chrome 上已安装 Web 应用程序的添加到主屏幕 (WebAPK) 图标和名称,清单更新后未升级

    我有一个网站 满足 Android 版 Google Chrome 的 改进的 添加到主屏幕 A2HS 功能的所有先决条件 我可以安装该应用程序 并形成一个 APK 并将其安装在设备上 并且主屏幕上会显示图标 In the Google 开
  • JavaScript 中(值不等值)是什么意思?

    我在polyfill中看到了这些片段this https developer mozilla org en docs Web JavaScript Reference Global Objects String repeatMDN 文档 C
  • GAE 上的 REST,使用什么实现?(RESTlet、jersey、其他......)

    有人在 GAE 上使用 REST 的经验吗 也许您可以为此建议一些轻量级 REST 实现 我发现RESTlet说他们有GAE优化的实现 RESTlet GAE http blog noelios com 2009 04 11 restlet
  • 如何在Linux上读取RTS/CTS引脚的值?

    我想知道我的 Linux 机器上串行端口上的 RTS CTS 引脚的状态 另外 由于我使用的是 dev ttyUSB0 相同的机制会起作用吗 问候 阿卡什 通常建议使用termios http linux die net man 3 ter
  • 如何在 R 中绘制具有复数的函数?

    我想在 R 中绘制以下函数 f w 1 1 5 e iw 其中 i 是 1 的平方根 R 可以在绘图中处理复数吗 这应该可以帮助您入门 主要是通过演示 R 用于表示复数和指数函数的符号 f lt function x 1 1 5 exp 0
  • 这个运算符在 django `reduce(operator.and_, query_list)` 中意味着什么

    我正在读这个问题 使用 args 和 kwargs 动态构建 Django 过滤器查询 https stackoverflow com questions 8510057 constructing django filter queries
  • ElasticSearch 的环回连接器

    npm 上至少有两个不同的包可用 环回连接器弹性搜索 https www npmjs com package loopback connector elastic search and 环回连接器 es https www npmjs co
  • 将图像旋转 3*Double.pi/2 使图像不出现(swift3)

    尝试将图像方向旋转 270 度 我可以旋转 90 度并且图像出现 但是当将图像旋转 270 度时什么也没有发生 我添加了两张 90 度和 270 度命令的图片 以使事情更加清晰 extension CIImage var image UII
  • 将兄弟姐妹分组到一个 div 中

    我在一家公司工作 该公司使用编码非常奇怪的电子商务解决方案 我无法直接访问电子商务商店的代码 因为它是由该特定公司托管的 我会废除整个系统 但客户相当依恋它 这就是他们想要的 这是我必须处理的内容 tbody tr td class Pro
  • firebase 和 swift - 此类不符合键值编码 -----

    我知道还有其他类似的问题 但我认为我的问题是如何访问 firebase 而不是插座 因为我的错误位于 IBAction 函数中 该函数可以在错误发生之前调用 IBAction func sign in out tapped sender U
  • 使用 DSC Resource 配置 HKEY_CURRENT_USER 实际上会更新 HKEY_USERS\.DEFAULT

    以下 DSC 声明写入注册表项 HKEY USERS DEFAULT Console 而不是 HKEY CURRENT USER Console 为什么 Registry ConsoleFaceName Key HKEY CURRENT U
  • 从字符串向量中提取第 n 个字符[重复]

    这个问题在这里已经有答案了 我有一个行向量 如下所示 1 118 o m n a jpg 2 122 m f h a jpg 3 152 y f n a jpg 4 160 y m h a jpg 5 083 o m a a jpg 例如
  • Asp.Net SQL刷新页面重复插入?

    我有一个 aspx 页面 其中包含一个文本框和一个按钮 当用户在文本框中输入信息并单击 发布 时 它会将数据插入到我的 sql 数据库中 问题是 如果用户点击刷新 它将继续将相同的数据插入数据库 我很确定调用了整个 单击 方法 而不仅仅是插
  • 将多个字符串传递给 SharedPreferences

    我想存储三个字符串作为我的应用程序的用户首选项 我已经设置了一个很好的布局 只需将字符串保存到 SharedPreferences 即可 我还想知道如何在下一个活动中检索这些字符串 下面是我当前的代码 如果有人可以向我展示如何将此功能添加到
  • Java Web Start应用程序可以从本地系统读取文件,但不能写入[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 请询问您是否需要更多信息 我有安全和所有权限标签 在我的 jnlp 中 当我离线运行我的 java 应用程序时 它可以正常工作 F
  • AWS API Gateway 和 Lambda 的公共 IP 地址(无 VPC)

    我已经配置了一个 AWS API Gateway 并创建了一个 Lambda 函数来连接到外部 REST API API网关和Lambda不在VPC中 因此出口IP地址是随机的 我面临的挑战是外部 REST API 位于防火墙后面 这需要将
  • 如何在 GDScript 中实现结构?

    GDScript 中是否有相当于 C 结构 类的东西 例如 struct Player string Name int Level 戈多3 1 1gdscript不支持structs 但使用可以实现类似的结果classes dict or