2

私は、プレイヤーといくつかのオブジェクトなどで farseer 物理学を使用してプラットフォーマー ゲームを作成しましたが、オブジェクトの質量に問題があります。

プレイヤーは車輪とジョイントで接続された胴体で構成され、オブジェクトに質量を設定しない場合、すべてがほぼ完璧に機能します。ただし、質量を使用しないと、オブジェクトのテクスチャを変更すると、質量が奇妙に増減するため、不安定なシミュレーションが作成されます。しかし、正しい質量と密度を割り当てると、想定どおりに何も機能せず、その理由がわかりません。新しい重量に対応するために力などを増やしますが、プレーヤーを動かすと前後にスライドし、停止すると横に跳ねます。そして、物を拾うと、彼は画面全体をハッキングします。

それで、私が立ち往生している原因の解決策を知っている人はいますか?

私がこれまでに発見した唯一のことは、遠い物理学における物体の質量は、そのフィクスチャの密度によって計算されるということです. したがって、テクスチャを変更すると重みが増減します。しかし、手動で重みを割り当てると機能しません。

4

1 に答える 1

3

Box2D マニュアルから引用:

フィクスチャ密度は、親ボディの質量特性を計算するために使用されます。密度はゼロまたは正の値です。通常、すべてのフィクスチャに同様の密度を使用する必要があります。これにより、スタッキングの安定性が向上します。

密度を設定しても、ボディの質量は調整されません。これを行うには、ResetMassData を呼び出す必要があります。

fixture->SetDensity(5.0f);    
body->ResetMassData();

正しく機能させるには、大量データをリセットする必要がある場合があります。

于 2013-05-13T10:07:20.607 に答える