Sistem operasi atau perangkat - versi Godot:
Godot 2.1/HEAD, tapi sepertinya master juga terpengaruh
Deskripsi masalah:
Saat mengkode beberapa hal untuk permainan (non-FOSS), saya menamai salah satu metode saya sebagai has_point
pada skrip CanvasItem
-inheriting yang ditugaskan ke beberapa kontrol. Saya berhasil mencapai return true
, karena itu akan ditimpa oleh skrip lain... Dan kemudian, tiba-tiba, semua kontrol dengan skrip itu mulai meraih semua klik :laughing:
Saya memutuskan untuk mencari dokumen, karena saya menduga sesuatu seperti ini mungkin terjadi, tetapi Control::has_point
tidak terdaftar, karena tidak terikat sama sekali.
Perhatikan bahwa implementasi has_point
pada scene/gui/control.cpp:572-588
memanggil metode skrip.
Langkah-langkah untuk mereproduksi:
extends Control
func has_point(point):
return true
Tautan ke proyek contoh minimal: Sebagian terburu-buru di sini, jadi, mungkin nanti berdasarkan permintaan.
Bagaimana cara memperbaiki:
scene/gui/control.cpp:2516
BIND_VMETHOD
, seperti di sini: scene/main/node.cpp:2923
BIND_VMETHOD(MethodInfo("_process", PropertyInfo(Variant::REAL, "delta")));
Control::has_point(Vector2 point)
Saya ingin mencoba ini sebagai kontribusi pertama saya.
Hapus juga bind_method
?(alias #7960)
Tidak yakin tentang itu
Sunting: Saya harus belajar membaca. duh.
Diperbaiki oleh #8023.
Komentar yang paling membantu
Saya ingin mencoba ini sebagai kontribusi pertama saya.