Godot: Control::has_point 未列为虚方法

创建于 2017-03-13  ·  3评论  ·  资料来源: godotengine/godot

操作系统或设备 - Godot 版本:
Godot 2.1/HEAD,但似乎master也受到了一些影响

问题描述:
在为(非 FOSS)游戏编码一些东西时,我在分配给某些控件的CanvasItem继承脚本上将我的一个方法命名为has_point 。 我把它变成了return true ,因为它会被其他脚本覆盖......然后,突然间,所有带有该脚本的控件开始抓取所有点击 :laughing:

我决定搜索文档,因为我怀疑可能发生了这样的事情,但是Control::has_point没有列出,因为它根本没有绑定。

请注意, has_point上执行scene/gui/control.cpp:572-588调用脚本方法。

重现步骤:

  1. 制作一个脚本:
extends Control
func has_point(point):
    return true
  1. 将其添加到 Button 节点
  2. 利润(或实际上,哭泣)

链接到最小的示例项目:这里有点匆忙,所以,以后可能会根据要求。

怎么修:

  1. 转到scene/gui/control.cpp:2516
  2. 添加适当的BIND_VMETHOD宏,如下所示: scene/main/node.cpp:2923
BIND_VMETHOD(MethodInfo("_process", PropertyInfo(Variant::REAL, "delta")));
  1. 编译,确保文档列表Control::has_point(Vector2 point)
  2. 做公关
bug documentation junior job

最有用的评论

我想尝试将此作为我的第一个贡献。

所有3条评论

我想尝试将此作为我的第一个贡献。

还要删除常规的bind_method吗? (又名#7960)

虽然不确定

编辑:我应该学会阅读。 呃。

由 #8023 修复。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

testman42 picture testman42  ·  3评论

timoschwarzer picture timoschwarzer  ·  3评论

Spooner picture Spooner  ·  3评论

Zephilinox picture Zephilinox  ·  3评论

mefihl picture mefihl  ·  3评论