【发布时间】:2021-03-16 06:00:24
【问题描述】:
Video of what's happening exactly
规格是:
- 正在录制 2560x1080@60hz 的显示
- 显示窗口离屏 3840x2160@24hz(也用 60hz 测试过)
- Windows 10
- GPU Nvidia 970 GTX
这周刚开始学习 godot,却因这种奇怪的行为浪费了几个小时。
戈多细节:
- 不修改形状和实体的比例(不与物理混淆)
- 开始尝试创建一个扩展 KinematicBody2D 的实体类,以在我的游戏中创建敌人的实例。现在只是使用虚拟块来测试碰撞是否确实有效(由于视频中发生的事情而在此停止)
- 具有一个正方形纹理的大虚拟正方形被称为实体,与巨大的 Y 尺寸碰撞只是为了测试一下。
- 我要触发信号的area2d是字符前面的小矩形。
有什么我应该知道的导致信号仅在调试窗口位于另一个显示器上时触发?我是否应该将调试窗口移至另一台显示器并相信游戏会正常运行?
代码 sn-ps
在我的动画控制器中创建 Area2D
func _create_shape_with_collision(s : Shape2D, parentNode : Node) -> Node:
var ret = Area2D.new()
ret.connect('body_entered', self, '_check_body_entered')
var c = CollisionShape2D.new()
c.shape = s
parentNode.add_child(ret)
c.disabled = true
c.name = 'collision_shape'
ret.add_child(c)
return ret
信号功能
func _check_body_entered(body : Node):
print(body.name)
PS:尝试在 Godot 的界面中键入一些内容来帮助自动完成,但我创建的类无法正常工作。
PS2:在 godot 的 reddit 页面上发布了同样的消息,希望能提高知名度
【问题讨论】:
-
@Theraot 因为它似乎在显示 1 中工作(显示 2 中的 godot 窗口),我将调试窗口设置为在显示 1 上打开,到目前为止一切似乎都运行顺利。如果我为游戏发布了一个可执行文件,我可以相信它会像这样工作吗?
-
您的目标平台与您开发的平台相同吗?如果是的话,我希望它也能正常工作。此外,您可以继续导出并测试它。否则,无法替代在目标硬件上进行测试。我没有多显示器设置来为您测试。我不希望任何只有一台显示器的人会遇到这个问题。我想重申我之前的评论。首先,Godot 测试版和候选版本都很好。我在生产中使用过它们。只记得测试。我们现在正处于新马厩的边缘。其次,如果还没有解决这个问题,它应该打开一个问题。
-
好的,我测试了它:在当前稳定版上导出,在 3.2.4-RC5 上调试和导出,问题仍然存在。猜猜是时候打开一个问题了。感谢您的澄清。
标签: godot