Système d'exploitation ou appareil - Version Godot :
Godot 2.1/HEAD, mais il semble que master soit aussi quelque peu affecté
Description du problème:
Lors du codage de certains éléments pour un jeu (non FOSS), j'ai nommé l'une de mes méthodes has_point
sur un CanvasItem
-inheriting script qui a été affecté à certains contrôles. J'ai return true
, car cela devait être remplacé par d'autres scripts... Et puis, soudainement, tous les contrôles avec ce script ont commencé à saisir tous les clics :rire:
J'ai décidé de rechercher dans la documentation, car je soupçonnais que quelque chose comme cela aurait pu se produire, mais Control::has_point
n'était pas répertorié, car il n'est pas du tout lié.
Notez que l'implémentation de has_point
sur scene/gui/control.cpp:572-588
appelle la méthode de script.
Étapes à reproduire :
extends Control
func has_point(point):
return true
Lien vers un exemple de projet minimal : En partie pressé ici, donc peut-être plus tard sur demande.
Comment réparer:
scene/gui/control.cpp:2516
BIND_VMETHOD
appropriée, comme ici : scene/main/node.cpp:2923
BIND_VMETHOD(MethodInfo("_process", PropertyInfo(Variant::REAL, "delta")));
Control::has_point(Vector2 point)
J'aimerais essayer ceci comme ma première contribution.
Supprimez également le bind_method
?(alias #7960)
Pas sûr de ça par contre
Edit : je devrais apprendre à lire. duh.
Corrigé par #8023.
Commentaire le plus utile
J'aimerais essayer ceci comme ma première contribution.