0

画面の周りでいくつかのボールが跳ね返り、それぞれが独自のボディを持ち、互いに跳ね返ることができます。ユーザーはボールを拾い、画面上でドラッグできます。

選択したボールを「殺して」、ユーザーがタッチダウンしている限り一時的にスペースから削除したいと思います。そのため、他のボールはそこにないかのように跳ね返ります。放すと、ボールはその物理的特性を取り戻し、跳ね返りを再開できます。

これをどのように実行すればよいですか?ボディを完全に削除して、touchEnded で再作成する必要がありますか? 任意のアイデアやヘルプをいただければ幸いです。ありがとう

4

2 に答える 2

0

既存のボディにフィクスチャを追加/削除することはできないと思います。目的を達成する方法は、本体を無効にすることです(アクティブ状態をfalseに設定します)。また、衝突フィルター/マスクを変更して、特定のゲームオブジェクトと衝突しないようにすることもできますが、たとえば、ワールド境界とは衝突します。

于 2012-05-21T08:59:42.670 に答える
0

定義を保持するカスタム クラスで Box2D 本体をラップできます (bodyDef と FixtureDef は再利用可能です)。

  • タッチで移動した既存のボディの位置 0, 0 のフィクスチャを破棄 / 再作成します
  • ORタッチ位置で全身を破壊/再現

フィクスチャを管理する方がパフォーマンスに優れていると思います。

于 2012-08-29T15:52:49.100 に答える