Godot: Control :: has_pointが仮想メソッドとしてリストされていません

作成日 2017年03月13日  ·  3コメント  ·  ソース: godotengine/godot

オペレーティングシステムまたはデバイス-Godotバージョン:
Godot 2.1 / HEADですが、マスターも多少影響を受けているようです

問題の説明:
(非FOSS)ゲーム用にいくつかのものをコーディングしているときに、いくつかのコントロールに割り当てられたCanvasItem継承スクリプトで、メソッドの1つにhas_pointという名前を付けました。 return trueに到達しました。これは、他のスクリプトによって上書きされるためです...そして、突然、そのスクリプトのすべてのコントロールがすべてのクリックを取得し始めました:laughing:

このようなことが起こったのではないかと思ったので、ドキュメントを検索することにしましたが、 Control::has_pointはまったくバインドされていないため、リストされていません。

scene/gui/control.cpp:572-588has_point実装は、scriptメソッドを呼び出すことに注意してください。

再現する手順:

  1. 次のコマンドを使用してスクリプトを作成します。
extends Control
func has_point(point):
    return true
  1. ボタンノードに追加します
  2. 走る
  3. 利益(または実際には泣く)

最小限のサンプルプロジェクトへのリンク:ここでは部分的に急いでいるので、後でリクエストに応じてください。

直し方:

  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. PRをする
bug documentation junior job

最も参考になるコメント

これを最初の貢献としてやってみたいと思います。

全てのコメント3件

これを最初の貢献としてやってみたいと思います。

また、通常のbind_method削除しますか? (別名#7960)

それについてはよくわかりませんが

編集:私は読むことを学ぶ必要があります。 当たり前。

#8023で修正。

このページは役に立ちましたか?
0 / 5 - 0 評価