問題タブ [farseer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
675 参照

box2d - Farseer/Box2D - 回転ジョイント (またはその他) の回転を一方向に制限しますか?

Farseer (Box2D に基づく) でマシンを作成しようとしています。このマシンでは、一方向ベアリングを使用して、ウェイトが点を中心に反時計回りのみの方向に回転する必要があります。

Revolute ジョイントを使用してウェイトを取り付けましたが、この問題以外はすべて機能しています。マシンに影響を与えるには、重りにかかる重力が必要です。したがって、動きの物理学がまだそこにある状態でスイングアウトし、スイングバックすることはできません。

どうすればこれを達成できるかについて誰かがアイデアを持っているなら、私はとても感謝しています.

0 投票する
1 に答える
82 参照

c# - ボディに作用する力を取得する

私は物理学の教育用プラットフォームを構築しているので、その時点で物体に作用している力の合計を知る必要があります。このようにして、学生が何が起こっているのかを理解できるように、この合力を示す矢印を描くことができます。

Farseer のソースを掘り下げたところ、Vector2 の内部変数Forceが見つかりました。内部であるため、異なるアセンブリにあるため、教育プラットフォームからアクセスできません。

修飾子を private に変更して getter 関数を追加すると、何か悪いことが起こりますか?

また

オブジェクトに現在作用している合力を取得するより良い方法はありますか?

0 投票する
1 に答える
617 参照

xna - Farseer Create Rectangel 幅 高さ

Box2D に基づく Farseer XNA4.0 C# 物理エンジン

BodyFactory.CreateRectangle(world, w, h,density, new Vector2(x, y)); を使用する場合 ボディの作り方

ボディから幅と高さを取得するにはどうすればよいですか?

現在、幅と高さを保存していますが、フィクスチャや形状などから取得できるかどうか疑問に思っています。いくつかの試みをしましたが、役に立ちませんでした。作成するエンティティごとに 2 つのフロートを節約できます。

助けてくれてありがとう。

0 投票する
1 に答える
1952 参照

c# - コンセプトチェッカー:Farseerの衝突状況

私はかなり長い間Farseerを使用しており、物理教育プラットフォームプロジェクトに取り組んでいます。私の脳内のエンジンについては、かなり長い間答えられていない質問がいくつかあります。その多くは、エンジンの衝突処理に関するものです。

Farseerに適切なAPIがないこともあり、多くの人がエンジンの動作を理解するのに問題があるようです。知っている人は、次の概念を確認し、間違っている概念をすべて削除することをお勧めします。

コンセプト0:2つの段階

Farseerでの衝突は、次の2つの段階に分けられます。

  1. ブロードフェーズ衝突
  2. 正確な衝突(別の正式な名前がある場合は、私の用語の使用を修正してください...)

コンセプト1:ブロードフェーズ

Farseerは、広い位相の衝突を使用して、シーン内の潜在的な衝突を検出します。上記の広相衝突試験は、以下によって行われる。

  1. パッケージ「Farseer.Collision」にある四分木を使用します。

  2. クラス「Farseer.Dynamics.World」には、「Farseer.Collision.QuadTreeBroadphase」への参照があります。

  3. 「Farseer.Collision.QuadTreeBroadphase」には「Farseer.Collision.QuadTree」への参照があります。

  4. さらにバウンディングボックステストも行われます。

  5. フィクスチャのどのペアが衝突する可能性があるかを知る必要がある場合は、これを行うことができます...

しかしその後...

小さな質問1

どのフィクスチャのペアが衝突する可能性があるかを知ることが役立つ一般的な状況のいくつかは何ですか?

コンセプト2:イベントの意味

2つのキーワードの定義:

  1. 触れる:2つのオブジェクトが接触しています。配列Manifold.Pointsは空ではありません
  2. 衝突:2つのオブジェクトが初めて接触します。

BeforeCollisionは、2つのオブジェクトが衝突しておらず、接触していないことを意味します。

OnCollisionは、2つのオブジェクトが衝突していることを意味しますが、触れてもこのイベントは発生しません。

AfterCollisionは、2つのオブジェクトが衝突していたことを意味しますが、現在は接触しているだけです。

OnSeparationは、2つのオブジェクトが接触していたことを意味しますが、現在は接触していません。

コンセプト3:イベントの使用

ブロードフェーズ衝突試験と精密衝突試験は常に実施されます。

OnCollisionイベントでfalseを返すか、IgnoreCollisionメソッドを使用すると、正確な衝突を無効にできます。

人々が「OnCollisionを空のままにしてtrueに戻すだけ」と言うのを何度も聞いたことがあります。一体どういう意味ですか?イベントを使用するということは、上記のイベントが発生したときに、追加の効果(たとえば、敵を倒す、スコアを付ける、サウンドを再生するなど)を適用したいということです。

0 投票する
0 に答える
1145 参照

box2d - Farseer / Unity - キネマティック ボディとセンサー

私はUnityを使ってPlattformer-Gameに取り組んでいます。現在、 CatsInTheSkyの Farseer-Port を使用しています。

私はいくつかの問題を抱えています...ええ、物理学です。ゲームをリアルにしたいわけではありませんが、Farseer の CollisionDetection を使用したいと考えています。

それで、私は Farseer-Unity-Tutorials に従い、キャラクターにボックス (BodyType: Dynamic) を与えました。次のように動作します。

  • 落下している
  • 地面に衝突する
  • そして滑りやすい

それから、Farseer と Box2D に関する調査を開始しました (さらに役立つチュートリアルがいくつかありました)。なぜなら、キャラクターを動かしたいだけで、キャラクターを動かすように言ったときに地面を滑らせたりしたくないからです。

そして、良い方法に関するいくつかの記事を読みました: Using Sensors for Collision Detection.

そこで、Unity でさらに 4 つのゲームオブジェクトを作成し、それらを Back/Front/Foot/Head-Sensor と呼び、それらに RevoluteJoint-Component を与え、PlayerObject をそれらの 4 つの GameObjects にバインドしました (これには Body-Component もあり、「Dynamic」とマークされています)。 -Bodies)、私はそれらすべてに次のような CodeLine を持つスクリプトを与えました:

そのため、(ダイナミック ボディとしてマークされているため) まったく衝突しませんが、衝突が登録されます。

そして今、私はちょっと立ち往生しています:/

Player-Body が地面に触れた場合に静止するように正確に指示する方法がわかりません。

私はこのようなことを試しましたが、まったく機能しません:

(「速度」変数はグローバル変数であり、ここにプレイヤーの Body.LinearVelocity-Information を配置します)

次に、Player-Body を Kinematic-Body に変更しました。必要になるまで、浮いたり衝突したりしないことを知っていました。したがって、重力もまったく影響しません。

接地されているかどうかをセンサーに教えてもらいたいだけです。接地している場合は、この地面に留まるべきです。

誰かが助けてくれたら本当に感謝しますか?

(他の誰かがその Unity-Port を使用している場合は、Farseer ContactListener にアクセスする方法を知りたいです。)

0 投票する
0 に答える
60 参照

c# - 物理ヘルパーxaml回転

初心者なのでお手柔らかにお願いします。物理ヘルパー XAML ライブラリ ( Farseer ) を使用して、アプリ内で物理を使用しています。

現在、私は次のような問題を抱えています

  1. オブジェクト、特に三角形を 1 点を中心に回転させ、その頂点を円形ジョイントに向けます。

  2. また、三角形が の角速度に達したときに (頂点を指さずに) 回転させた0.016後、オブジェクトは大きく揺れ始めます。

誰かがこの問題で私を助けてくれますか? これに何時間も費やした後、私は正気を失っています。それはかなり単純に見えますし、そうあるべきですが、それでも私を回避します

0 投票する
1 に答える
521 参照

box2d - IgnoreCCD = false の場合、AfterCollision/NormalImpulse を使用した衝突力の計算は信頼できませんか?

0 投票する
1 に答える
470 参照

c# - プレーヤーが画面上でスムーズにペイントできるようにするためのXNAの最良の方法は何ですか?

私は、プレーヤーがプログラムで線を引き、ボールがそれらから跳ね返るwp7ゲームを開発しています。私はXNAとfarseer物理学を使用しています。ユーザーが線を引き、次にプログラムがそれを取得して物理オブジェクト、または少なくともvector2のリストに変換するための最良の方法は何ですか?TouchLocationsのリストを作成しようとしましたが、添付した画像のように、ユーザーがあまり遅く描画しないと、むらが出てしまいます。助言がありますか?ありがとう http://img829.imageshack.us/img829/3985/capturehbn.png

ここにいくつかのコードがあります:私はgamestatemanagementサンプルを使用しています、そしてこれはHandleInputメソッドにあります

pathManagerクラスは、描画可能な物理オブジェクトであるパスクラスのコレクションを管理します。これがpathManager.Updateです

これは私が今していることであり、私は何のためにでもそれを捨てることをいとわない。タッチ位置ごとに5x5の長方形を使用するとパフォーマンスが低下すると思われるかもしれませんが、farseerを使用すると、ほとんどフルスクリーンであってもドロップは見られませんでした。ただし、このシステムでは、線が速く描画されると、滑らかな線はまったく作成されません。

これが役立つとは思えませんが、ここにPathコンストラクターがあります。

0 投票する
1 に答える
245 参照

c# - 重力で下向きに回転しないボディ

私は45度の角度でキヤノンから発射されている長方形のボディを持っています。体も45度回転させて、体の前に質量を設定しました。

体は空中で上手く上がりますが、体が地球に戻るときは回転しません。質量側が先に下がる方法はありますか?

私の実例は、ひもを付けたテニスボールを空中に投げることです。現在、重力が影響を及ぼしても、ストリングはボールの後ろに落ちません。

これが私の「ボール」です

それから私はそれを発射するためにこれを行います:

忘れている設定や計算があると思います。

0 投票する
1 に答える
842 参照

c# - FarseerPhysicsオブジェクトは完全には接触しません

Farseer Physicsが機能するようになり、オブジェクトを簡単に作成するために使用できるクイック/クルードベースオブジェクトを作成しました。

簡単なシミュレーションを設定しました。次のようになります。ボックスが衝突しないFarseerの例

DebugViewでは、次のようになります。デバッグモードのボックスのFarseerの例

両方のモードを有効にして詳しく調べると、オレンジ色のボックスに1つの行と列のピクセルが欠落していることがわかります。テクスチャにピクセルがありません

なぜそうなるのか誰もが知っていますか?

なぜこれが起こるのか誰かが知っていますか?すべてのFarseerデモでそれを行うわけではありません。pixelsテクスチャを確認しましたが、ファイル全体にオレンジ色pixelsの塗りつぶしが表示されていません。