在 Godot4 中,我试图用资源保存和加载变量。 它似乎丢失了,因为在任何保存调用之前第一次分配,给出了 null 参考,如果保存一次,它可以正常工作。 我正在学习教程,也许我遗漏了一些东西。 playerData.gd: 主.gd: 错误: 无法对 null 值调用方法“重复”。 缺少的步骤是 ...
在 Godot4 中,我试图用资源保存和加载变量。 它似乎丢失了,因为在任何保存调用之前第一次分配,给出了 null 参考,如果保存一次,它可以正常工作。 我正在学习教程,也许我遗漏了一些东西。 playerData.gd: 主.gd: 错误: 无法对 null 值调用方法“重复”。 缺少的步骤是 ...
我正在使用 Godot 4 测试版。 我想跳到AnimationPlayer中的特定帧,但我得到: 无效的集合索引“current_animation_position”(基于:“AnimationPlayer”)类型为“float”的值。 这是相关文档: https://docs.godoten ...
我正在尝试创建一个可以裁剪或扩展纹理(沿 x 轴)的着色器到目前为止,这是我在裁剪部分得出的结论: 但我不知道扩展部分是如何工作的我说的扩展是什么意思? 我实际上是在尝试将此着色器应用于AnimatedSprite节点以创建类似于Sprite节点中的伪“区域”效果因此,通过扩展我的意思是精灵相当于 ...
我尽力描述它: 我有一个 3D 斜面,我想知道它在其中任何给定点的高度 (Z)。 我有表面的顶点 3D 位置和点的 2D position。如何知道它在表面碰撞时的高度应该是多少? 我正在使用 GDScript,在 Godot 的 2D 引擎中制作一个 3D/2.5D Doom 类引擎。 平坦的 ...
我正在尝试创建一个着色器,它通过在着色器参数中输入一个纹理(sampler2D)来决定精灵的轮廓,并剪辑它所绑定的任何东西到目前为止,这是我能够想到的: 但是这种方法似乎将Clip Texture压缩到 sprite 分辨率 我猜 UV 在 0.0 - 1.0 之间,两者都与此有关那么我该如何解决呢 ...
播放器脚本给我错误。 错误出现在信号 add_recoil(recoil: float)如果 Godot 引擎的任何编码智慧可以解释如何解决这个问题,那就太好了。 它应该从 WeaponBaseClass 脚本接收到玩家瞄准的信号。 有问题的脚本: 如果有帮助,我还有一个 EventBus 脚本: ...
我正在尝试断开SceneTreeTimer的连接,以避免像这样在超时时调用 function: 虽然它确实阻止了计时器调用 function 中止后我仍然看到计时器,Output: 定时器=>[场景树定时器:1276] 时间过去了不应该是这样吗? 计时器=>[已删除对象] ...
我打算在特定的 position 上生成节点(我现在会说 Stickman),并使用按钮使它们向左和向右移动。 如您所见,我有两个按钮来移动我的火柴人。 攻击按钮会将火柴人向右移动,而防御按钮会将其向左移动。 右边的小按钮用于生成火柴人。 事情就像一个魅力,是的当我尝试生成另一个 Stickma ...
我正在制作一款自上而下且有敌人的游戏。 他们不开枪,只是朝你走来。 好吧,应该也有。 即使玩家是父节点,我似乎也无法找到敌人来定位玩家。 这是这里的代码: 但我从中得到的只是一条错误消息:无效的获取索引“位置”(基于:“空实例”)。 我不明白这是怎么回事。 到目前为止,我必须将 Player 设为父 ...
在 Python 的 3 个月经验之后,我最近开始在 Godot 上开发游戏。 在进入GDscript之前学习Python好吗? 如果不是,两者有何不同? 准备先学Python可以吗? 谢谢: :) 我决定我应该看看 Godot 频道推出的官方 GDscript 教程,我没有完全看完,因为它很长, ...
我正在尝试创建一个多风区域,在该区域中玩家将被不断推向左侧 <- 到目前为止,这是我为WindyArea的: 对于我的 Player 主体(仅供参考,我尽量不更改此脚本并且必须在其中创建一个新的 windy function): 但它只在玩家没有任何用户输入且身体为 static 时将玩家 ...
我正在为我的 Godot 游戏编写一个 A* 算法(使用 GDScript),在分配节点出身或确定导致最终路径走奇怪弯路的下一个最佳节点时,有些事情搞砸了。 调用算法的function如下: 其中“pos”变量表示 X、Y 和 Z 中的 3D 坐标。 算法如下图所示: 是的,我知道 z 坐标在算法中 ...
我正在尝试制作游戏,但我需要像全局变量这样的东西才能工作。 在 GDscript 中有没有一种方法可以创建一个变量,该变量可以使用脚本在所有节点上工作。 我需要一个按钮,让你买把变量设置为 true 的枪,并且在该变量为 true 的情况下,你可以装备这把枪。 这个问题并不真正适合这个部分,它说: ...
我正在尝试在_physics_process中模拟钟摆运动: 但出于某种原因,它似乎在“向下坠落”(重力增加,因此更快可见): 知道为什么会造成这种情况吗? 笔记: 理想情况下,我正在寻找涉及_physics_process()的修复程序,以便 object 也可以与环境交互最小的编辑: 这就是 ...
我试图做到这一点,当玩家在一个关卡中死亡时,他们在该关卡中拾取的所有硬币都重置为 0,而其他关卡的硬币总数保持不变。 我的问题是,每当我的玩家击中一块尖刺时,他们通常会同时击中两个,这会导致关卡中的当前硬币数量减去两倍。 这是我的尖峰代码: 每当玩家击中尖刺时,尖刺就会发出一个称为“kill”的信 ...
在此视频https://youtu.be/klBvssJE5Qg中,我向您展示了如何在固定摄像头之外生成敌人。 (顺便说一下,这是在 GDscript 中)我怎样才能使它与移动的相机一起工作? 我想制作一个僵尸格斗游戏,里面有一个移动的摄像机,僵尸在摄像机外生成。 我真的很感激这方面的帮助。 不适 ...
我有一个名为“Merger”的节点,它是一个带有CollisionPolygon2D的Area2D ,如下所示: 使用以下脚本: 但是每当我将它们的 2 个实例放在彼此之上而不是合并它们时,它们都会被删除: Output 正在运行: 删除=>合并:[Area2D:1269] 删除=&g ...
我正在尝试通过这样的代码更改我的CollisionPolygon2D形状: 但它给出了错误: area_set_shape_disabled:刷新查询时无法更改此 state。 使用 call_deferred() 或 set_deferred() 改为更改监控 state。 这就是为什么我假设 ...
最初当我使用_physics_process()来控制我的KinematicBody2D 我有几分钟但很明显(而且真的很烦人)抖动,所以我将物理 fps 增加到 144: 这解决了抖动(终于内心平静! ) 但是我的电脑相当高端,我的显示器是 144hz 但是游戏会在帧率较低的低端电脑上运行相同( ...
通过脚本,我正在创建一个 static 正文,它有一个子面板容器,该容器有一个子节点 label。 当文本应用于 label 时,面板容器的左上角位于 static 主体的中心,导致文本偏离中心(请参见下面的屏幕截图)。 以下代码用于创建节点: 以下代码用于放置 static 正文并更新 labe ...