2017-11-29 16 views

答えて

0

bあなたが説明したehaviourは意図的です。各ポインタと1つのフレームでは、enterイベントはポインタの下の1つのアクタだけが起動できます。終了イベントでも同じです。それで、Stageが仕掛けられており、この動作を変更するのは簡単ではないようです。 ところで、touchDown()はtrueまたはfalseを返すことはこれとは関係ありません。

私はそれは少し厄介だが、ここでは一般的な考え方である、可能な回避策を考えることができます。そのプロセッサを使用して)InputMultiplexer

2を使用して、あなたのStage前に別のInputProcessorを追加)

1、トラックタッチされた各ポインタの座標。あなたがtouchUpでポインタを登録すると、touchDragおよび/またはmouseMoveで更新します。それを登録解除します。

3)各フレームで、タッチされたポインタの下にあるすべてのactiveLineSegmentを確認します。そのためには、各ポインタのスクリーン座標をActor.screenToLocalCoordinates (Vector2)を使ってactiveLineSegmentsの親のローカル座標に変換する必要があります。 activeLineSegmentが前のフレームのポインタの下になく、現在のフレームにある場合は、この状況をenterイベントとして扱うことができます。また、activeLineSegmentが以前にポインタの下にあって、現在のフレームでない場合(またはポインタが削除された場合)は、終了イベントです。

0

そのZ値は、あなたの文がtrueに近いつまらないです

高いので。 LibGDX event systemは、 キャプチャの伝播の2つのフェーズで動作します。

コードの要点は、すべての俳優のリスナーメソッドtouchDown()がtrueを返すことです。この最初のリスナーは、タッチダウンイベントを取得し、それを処理し、のキャプチャフェイクを破る。あなたができるソリューションとして

  1. はどちらのソリューションが何

EventListenerにイベントに反応するがキャプチャ相を壊さない(falseを返す)

  • add capture listenerとキャプチャ段階にイベントに反応します私には本当に好きではありませんが、良く分かっていません。

  • +0

    私はタッチダウンコードでfalseを返そうとしましたが、まだトップアクターのenterイベントをトリガーします。 – Hector

    +0

    @Hector、アクターとすべてのリスナーを作成するコードを投稿できますか? – Sergey

    +0

    私はチャンスがあるときに行いますが、基本的にはこのようです。私は投稿したイベントリスナーコードを持つ俳優を作成するグループを持っています。もし重複していなければ、出演者は出入りイベントに正常に反応すると言っていたはずです。グループには、イベントリスナーが関連付けられていません。グループを含むステージには、タッチアップ/タッチダウン/ドラッグのイベントリスナーがいくつかあります。 – Hector

    関連する問題