Godot: Kontrol::has_point tidak terdaftar sebagai metode virtual

Dibuat pada 13 Mar 2017  ·  3Komentar  ·  Sumber: godotengine/godot

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:

  1. Buat skrip dengan:
extends Control
func has_point(point):
    return true
  1. Tambahkan ke simpul Tombol
  2. Lari
  3. Untung (atau sebenarnya, menangis)

Tautan ke proyek contoh minimal: Sebagian terburu-buru di sini, jadi, mungkin nanti berdasarkan permintaan.

Bagaimana cara memperbaiki:

  1. Pergi ke scene/gui/control.cpp:2516
  2. Tambahkan makro BIND_VMETHOD , seperti di sini: scene/main/node.cpp:2923
BIND_VMETHOD(MethodInfo("_process", PropertyInfo(Variant::REAL, "delta")));
  1. Kompilasi, pastikan bahwa daftar dokumen Control::has_point(Vector2 point)
  2. Buat PR
bug documentation junior job

Komentar yang paling membantu

Saya ingin mencoba ini sebagai kontribusi pertama saya.

Semua 3 komentar

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.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

Spooner picture Spooner  ·  3Komentar

EdwardAngeles picture EdwardAngeles  ·  3Komentar

gonzo191 picture gonzo191  ·  3Komentar

mefihl picture mefihl  ·  3Komentar

timoschwarzer picture timoschwarzer  ·  3Komentar