問題タブ [jbox2d]
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.
java - Box2d用のLIBGDX最新テストベッド
Libgdxを使用して最新のBox2dテストベッドをテストしています。彼らは機能していないようで、他の誰かが同じ問題を抱えているかどうかを知る必要があります。最初のものはコンベヤーベルトと呼ばれ、https://github.com/ansman/box2d/blob/master/Testbed/Tests/ConveyorBelt.h
私が変換したもの:
これは他のBox2Dテストと組み合わせることで機能していますが、いくつか気づきました。
LibgdxのContact.javaクラスにsetTangentSpeedメソッドがありません
設定では、org.jbox2d.commonインポートを使用する必要があります
テストをタイプに解決できません
また、Breakable、https://github.com/ansman/box2d/blob/master/Testbed/Tests/Breakable.hを使用してみました
に変換されました
私は気づきました:
LibgdxにはManifold.javaにpointCountがありません。簡単な修正の1つは、getWorldManifoldに変更することでしたが、うまくいきませんでした
Vector2.javaには、m_velocityのVectorsでは許可されないcrs(float x、Vector2 v)が含まれていません。
com.jbox2d.common importを使用しない限り、設定は存在しません
これらのメソッドが含まれていない場合、これらをLibgdxで機能させるにはどうすればよいですか?Libgdxはもう更新されていませんか?これらを使いたいのですが、移植が遅れているようです。Contact.javaで、setTangentSpeedのコードの直前で彼が停止したことに気づきました。テストにgwtjarを追加しましたが、メリットはありません。
box2d - box2d グラビティ プレイヤーの落下速度が速くなる
モバイル用のbox2dを使用してゲームを開発しています。これらのコードで世界を作成しました:
それはとてもうまくいっています.私はプレーヤーオブジェクトを持っています.プレーヤーは次のように倒れます:
y 軸: 0、10、30、70 など。毎秒速く落ちているということですが、同じ速度で落ちたいです。のように: y 軸: 0、10、20、30 など
java - JavaでJBox2Dの世界を表示/視覚化する方法
FlashDevelopチュートリアルに従ってJBox2Dアプリを作成しました。コマンドラインからはすべてうまく機能しているようですが、私の問題は、JFrameで世界を表示する方法、または視覚化するための代替アプローチです。DebugDrawを試しましたが、完全に失われました。前もって感謝します。
box2d - 衝突時にlibgdx/jBox2dがファントムボディを追加しますか?
libgdx と jBox2D を初めて使用します (他の環境で Box2D を使用したことがあります)。
大きな動的ボディと、それが着地するための 2 つの小さな静的ボディを作成しました。私の体は決して触れないようです。代わりに、システムが私の体の間に本当に小さな体を作成しているように見えます...そして私には理由がわかりません!
下の画像の上半分は、進行中の衝突 (右側) と発生しようとしている衝突 (左側、シェーディングされていない形状) を示しています。
下の画像の下半分は、数ステップ後です。大きなシェーディング シェイプが最初の衝突ポイントを中心に回転し、シェーディングされていないシェイプと「衝突」しました。
各衝突の場所には、形状が接触するのを妨げているように見える小さな赤い点があります. これを複数のスケールで試しましたが、結果は似ています。私はこのサイトをグーグルで検索して、同じ問題を抱えている人を探してみましたが、うまくいきませんでした。
java - 処理 / box2d - setTransform() を使用してオブジェクトの位置を設定すると、期待どおりに動作しない
処理とbox2dを使って2Dゲームを作っています。私のゲームにtargetBox
は、のインスタンスであるオブジェクトがありますBox
。ゲームの開始時targetBox
に表示され、シーソーで休みます。ゲームの目的は、スリング ショットを使用して、シーソーで他のボックスを発射targetBox
し、棚に発射することです。プレイヤーが棚を逃した場合、ボックスはエリアに着陸しますが、99% の確率でシーソーにはなりません。
「r」または「R」を押すことで、プレーヤーがボックスを元の場所 (シーソー上) にリセットできるようにする機能を実装しようとしています。
targetBox
最初に関数内の box2d ワールドに追加されますdraw()
。targetBox.display(true);
「r」または「R」を押すと...
Box
...クラスのリセット関数を呼び出します:
ゲームでは、'r' または 'R' を押すとtargetBox
消えてしまい、元の位置に設定されません。私は処理やbox2dにあまり詳しくありません。なぜこれが起こっているのか誰にも分かりますか?助けていただければ幸いです。
編集- さらにコードを追加しました:
box2d - 現実的なジャンプbox2d-変数の構成
私はまだJump'n'Runに取り組んでおり、「ジャンプできますか」という質問はすでに解決しています。
私の質問は、最も現実的な結果を得るために、重力、タイムステップ、フィクスチャサイズ、適用されたインパルス、およびフィクスチャ密度をどのように構成する必要があるかということです。
現在、Fixturesizeは230x140であり、デバッグのためにpixelexactサイズが必要なため、変更できません。変更できるのは次のとおりです。
重力(10)、
タイムステップ( Deltatime * 4);
適用されたインパルス(1000000);
フィクスチャ密度(0,002);
そして、なぜ現在の質量65kgを動かすのに100万のインパルスが必要なのですか?
android - Androidカメラからフレームの輪郭を見つけてbox2dボディに変換する方法は?
OpenFrameworks、OpenCV、および Box2D を使用して、良好なフレームレートで達成できました。Android を使用することは、はるかに複雑な作業のように思えます (私が Java の初心者であることも一因です)。
これが私が始めた方法です:
「OpenCV サンプル - 画像操作」を使用し、輪郭を見つけるのに最適な素敵な白黒画像を生成する「キャニー」効果以外のすべてを削除します。
/li>「OpenCV Sample - color-blob-detection」から、Mat の輪郭を見つけるロジックを取得しました。
したがって、私の現在の関数は次のようになり、機能しません。
/li>今、これは私が立ち往生しているところです。例外が発生し続け、正しい寸法を使用していないか、マットを正しい色空間に変換していないと思います。この投稿にはいくつかの洞察がありますが、それが正しいかどうかはわかりません: OpenCV on Android findContours throws Exception
box2d - Exterior Physic Engine ライブラリを Java の新しいプロジェクトに追加する (JBox2D)
JBox2D ライブラリを新しいプロジェクトにインポートしたいのですが、外部ライブラリを使用するのは初めてなので、私の疑問は本当にばかげているように見えますが、まあ、それがあなたの学び方です。
だから私はJBox2Dウェブサイトのチュートリアルに従って、ここまでやった:
私は JBox2D トランクを持っていることがわかります (私はトランクが何であるかをよく理解していませんでした...) それらはすべて Maven プロジェクトであり、私の目標は、開いている PhysicTest プロジェクトでエンジンのライブラリを使用できるようにすることです。
(おそらくばかげて)画像でわかるようにインポートしようとしていますが、機能していません。そのため、私にとってそれほど単純ではないこのような単純な問題を解決するためにあなたの助けを求めます^^
cocos2d-iphone - 形状上の接触点を見つける
Box2D プロジェクトでは、ユーザーがダブルタップした正確なポイントで、2 つの PolygonShaped ボディ間に RevoluteJoint を作成する必要があります。
接触点と、2 つの形状のそれぞれの頂点のリストがあります (明らかに、互いに衝突しないように設定されています)。私の理解が正しければ、接触点は世界の位置に関するものであり、頂点は説明しています。どんな世界にも存在できる形。しかし、あるものから別のものに「翻訳」するにはどうすればよいでしょうか。
たとえば、ユーザーが (3.63,5.07) をダブルタップしたとします。
形状1の頂点は次のとおりです。 0.29765773)]
形状 2 の頂点: [(-0.015462875,0.24353802), (-0.13529873,0.31698608), (-0.36852637,0.4127499), (-0.4136281,0.17009032), (-0.2880008,-03.0533)]
回転ジョイント:
どんな助けでも大歓迎です。
編集:
私は少し進歩しましたが、まだそこにはいません。私が今行っているのは、形状の頂点に基づいて「平均的な」位置を見つけることです。私は最初のエントリを取り、頂点が反時計回りに移動することを知っているので、どれが中央の頂点であるかを計算し、それが最初の頂点から最も遠いと仮定します。だから私は2つの平均をやっていて、そこにジョイントを設定しています.
コードは次のとおりです。
ジョイントのローカル アンカー:
ジョイントの 2 番目のボディについても同じことを行っています。これはかなり適切な近接性を見つけますが、特に形状が大きい場合は完全ではありません。
実際のタッチポイントに近づく方法はありますか? 私が必要とするのは shape.getTouchedPoint() のようなものですが、API はそれを提供していないようです。