نظام التشغيل أو الجهاز - إصدار Godot:
Godot 2.1 / HEAD ، ولكن يبدو أن السيد قد تأثر إلى حد ما أيضًا
وصف المشكلة:
أثناء ترميز بعض الأشياء للعبة (غير البرمجيات الحرة والمفتوحة المصدر) ، قمت بتسمية إحدى طرقي على أنها has_point
على نص برمجي متوارث CanvasItem
تم تعيينه لبعض عناصر التحكم. لقد وصلت إلى return true
، حيث كان من المفترض أن يتم تجاوز ذلك بواسطة نصوص أخرى ... وبعد ذلك ، فجأة ، بدأت جميع عناصر التحكم في هذا النص في الحصول على جميع النقرات: يضحك:
قررت البحث في المستندات ، لأنني اشتبهت في حدوث شيء كهذا ، لكن Control::has_point
لم يتم إدراجه ، لأنه غير ملزم على الإطلاق.
لاحظ أن تنفيذ has_point
على scene/gui/control.cpp:572-588
يستدعي طريقة البرنامج النصي.
خطوات التكاثر:
extends Control
func has_point(point):
return true
رابط لمثال بسيط للمشروع: هنا في عجلة من أمرنا جزئيًا ، لذلك ، ربما لاحقًا عند الطلب.
كيفية الإصلاح:
scene/gui/control.cpp:2516
BIND_VMETHOD
مناسبًا ، مثل هنا: scene/main/node.cpp:2923
BIND_VMETHOD(MethodInfo("_process", PropertyInfo(Variant::REAL, "delta")));
Control::has_point(Vector2 point)
أود أن أجرب هذا كأول مساهمة لي.
قم أيضًا بإزالة bind_method
العادي؟(الملقب # 7960)
ولاكننى غير متأكد من ذلك
تحرير: يجب أن أتعلم القراءة. دوه.
تم الإصلاح بواسطة # 8023.
التعليق الأكثر فائدة
أود أن أجرب هذا كأول مساهمة لي.