タグ付けされた質問 「box2d」

Box2Dは、C ++で記述されたゲーム用のオープンソースの剛体2D物理シミュレーションライブラリであり、さまざまな言語のポートを備えています

5
優れた2Dプラットフォーマー物理学[終了]
Box2Dで2Dプラットフォーマー用にセットアップされた基本的なキャラクターコントローラーがあり、気分を良くするために微調整を始めています。物理エンジンには微調整するための多くのノブがあり、物理エンジンで初めて書くのは私にはわかりません。ジャンプはいくつかのティックに力を加える必要がありますか?衝動?速度を直接設定しますか?アバターをすべての摩擦を取り除くことなく壁にくっつかないようにするにはどうすればよいですか(または、すべての摩擦を取り除きますが、空中でのみ)。カプセルとしてキャラクターをモデル化する必要がありますか?角の丸い箱?車輪が2つある箱?ただ一つの大きな車輪?誰かが前にこれをやったに違いないように感じます! 「赤ちゃんの最初の物理学」ではないウェブ上で利用可能なリソースは非常に少ないようです。これらはすべて、誰かがすでに問題を解決したいと思っている場所で途切れています。プラットフォーマー用の物理エンジンのほとんどの例には、浮遊感のあるコントロール、空中ジャンプ、または一時的な侵入が高すぎる場合の容易に悪用可能な動作などがあります。 私が意味するいくつかの例: ジャンプの短いタップは短い距離をジャンプします。長いタップは高くジャンプします。 高速で方向を停止または反転するときの短い横滑り。 傾斜の上に安定して立っている(ただし、ダッキングするときに傾斜を下る)。 アナログコントローラーを使用する場合のアナログ速度。 良いプラットフォーマーと悪いプラットフォーマーを区別する他のすべてのこと。 安定した移動プラットフォームをお勧めしますか? 「ほら、これをやる」を本当に探しているのではありません。明らかに、正しいことはゲームで何をしたいかによって異なります。しかし、誰かが可能性を経験して、「テクニックAはXをうまく機能し、テクニックBはYをうまく機能させるが、それはCでは機能しない」、または「if(key = =スペース)character.impulse(0、1) "
76 box2d  physics  input 

6
Box2Dの代替JSポートはありますか?
HTML5用のトップダウン2Dカーゲームを作成することを考えています。最初のゲームでは物理学と衝突を自分で書きましたが、このゲームでは既製のライブラリを使いたいと思います。 Box2DとそのJSポートを見つけました。 http://box2d-js.sourceforge.net それは、2008年に作られた非常に古いポートのようです。現在のBox2Dの多くの機能が欠けているのでしょうか、それとも大きな問題がありますか?そして、それに代わるものはありますか?

5
2Dロープ衝突検出
次のyoutubeビデオのように、オブジェクトと衝突できるロープを作成したいです。 2Dゲーム物理ロープ ポイントを使用し、これらのポイントを線で接続するverlet統合を実装すると考えています。ビデオで効果を得るために、ロープにどのタイプの衝突検出を適用するかを考えています。 私はあなたが各ポイントにいくつかのCDを実行する必要があると思います。box2Dを使用したいので、各ポイントをリジッドボディにしたいと思いますか?アドバイスをいただければ幸いです。

1
長方形のブロックから曲面を作成するにはどうすればよいですか?
以下のためにダイナマイトゲーム様、私はこのように、曲線をたどるブロックを作りたいです。 ブロックがボールに当たると消えます。 なんとか水平に描くことができましたが、パスをたどることができません。 どうすればいいですか?カスタム頂点を持つBox2Dオブジェクトを作成する必要がありますか?

3
farseer / box2dのような2D物理エンジン内でAIパスをどのようにフォローしますか?
私は、Farseerのような適切な剛体物理エンジンに取り組んでいる2Dトップダウンゲームを動かしている最中です。これまで、必要に応じて自分の物理コードをハッキングしていました。 ここで物事を行う適切な方法を学ぼうとしています。 AIを物理エンジン内で剛体にした後、設定されたパスをAIに追従させる適切な方法は何ですか? AIに追従する必要があるナビゲーションノードのパスがある場合、以前は次のタイムステップでの次の位置を計算し、その位置に手動で設定することで、パスに沿って手動で移動します。 しかし、今ではそれらは剛体であり、衝突や、それらにぶつかってそれらをパスから外す可能性のある力の影響を受けます。 だから、AIを動かすために、私は今、それらに衝動/力を適用すべきだと思いますか?フレームごとに手動で位置を設定する必要はもうありません。 だから私は決定論的世界からAIを強制的に非決定的世界に強制的に追いかける必要があると考えていますそれらを動かすために。 そうですか?それは他の人がそれを行う方法ですか? これは、AIが正確な道を歩いていないので、AIが風景の隅に引っかかるのを避ける方法についてのいくつかの質問を提起します。 または、何らかの方法で2つを混合し、AIの位置を手動で設定して固定パスをたどり、簡単に制御できる特定の状況でのみ他の力に反応させる方が良いでしょうか? アドバイスをありがとう。

4
Box2Dボディのバウンディングボックスを取得
Box2Dでは、すでに世界で作成されたボディのバウンディングボックスを取得できるかどうか興味がありました。 したがって、基本的には、ボディは作成され、世界などと対話します。そして、そのBodyのバウンディングボックスが必要でした。出来ますか?
12 physics  box2d 

1
ネットワーク統合のため、独自の物理エンジンを作成する必要がありますか?
現在、トップダウンのリアルタイムゾンビシューティングゲームを開発しています。これをJavaでコーディングし、物理エンジンとしてJBox2Dを使用しています。私は今週ネットワークをコーディングしており、現在は物理の同期まで行っています。 私は、サーバーが後でそれを承認する限り、クライアントが自由に移動できる予測クライアント/権限のあるサーバーモデルを使用することを計画しています。これには、クライアントが動きのデータを含むパケットをサーバーに送信し、サーバーが待ち時間を計算し、古い状態から世界を再シミュレーションすることが含まれます。 私の問題は、私の現在の物理エンジンであるJBox2D(基本的にはBox2Dのポート)は、ワールドのロールバックをサポートしておらず、ワールドデータをシリアル化するのがそれほど簡単ではないことです。私には2つの解決策があります。現在の物理エンジンを変更または拡張するか、自分で作成することができます。 自分の物理エンジンを作成する理由- 不要な機能を削除できます。トップダウンゲームでは、衝突のメカニズムと力の処理だけが本当に必要です。重力は関係ありません。 私はコードをよりよく理解でき、ロールバック機能を実装する方が[おそらく]簡単です JBox2Dを拡張/変更する理由 私自身の物理エンジンを書くことは、かなりの量の仕事になるでしょう、それは面倒かもしれません JBox2Dには幅広いサポートコミュニティがあり、開発者と協力することができます JBox2Dには、衝突検出など、特定の最適化があり、便利です これについては既に行われているようにいくつかの作業が行われますが、コードはほとんど共有されていません だからあなたの意見は何ですか。これは私の最初のゲームであり、私はプロのゲーム開発者ではありません。誰かがその領域ですでに行われた作業へのリンクを提供できる場合(できればJBox2D / Box2D / Javaを使用)。

2
Box2Dポリゴンの「Set()」関数を使用していますか?
Box2D物理エンジンを使用しています。そして、b2PolygonShapeと呼ばれる、box2Dのタイプの形状があります。 このクラスでは、ポリゴンを作成できます。ポイントの配列と頂点数を取得するSet()関数もあります。 Box2Dには次のような例があります。 // This defines a triangle in CCW order. b2Vec2 vertices[3]; vertices[0].Set(0.0f, 0.0f); vertices[1].Set(1.0f, 0.0f); vertices[2].Set(0.0f, 1.0f); int32 count = 3; b2PolygonShape polygon; polygon.Set(vertices, count); これは機能します。それでも、この機能を練習して混乱させようとしたとき、私はこれを行いました: b2Vec2 vertices[4]; vertices[0].Set(0, 0); vertices[1].Set(0,10); vertices[2].Set(10,10); vertices[3].Set(10,0); int32 count = 4; b2PolygonShape polygon; polygon.Set(vertices, count); これをコンパイルして実行すると、Set()関数の後でクラッシュしました。これは正方形を作成しませんか? また、コンソールでこれを得ました: Assertion failed: s > 0.0f …
11 2d  physics  box2d 

5
レッジクライムのアニメーションと動き(2Dプラットフォーマー)
物理学を駆使した2Dプラットフォーマーのために、レッジクライムメカニックの実装を決定するのに苦労しています。それを過度に複雑にすることなくこれに取り組む最善の方法は何ですか? これまでのところ、私は理解しています(ここでは趣味家はプロではありません)。 根の位置が手の位置のすぐ上になるまで、y軸の剛体に制御された力を適用し、次にキャラクターがプラットフォームに立つようにx軸に十分な力を適用します。同時に、どういうわけかこれを上昇アニメーションと同期させます。 備考:動きはここでは簡単で、プリズムのスライドジョイントで制御することもできますが、アニメーション(脊椎)を動きと同期させる方法がわかりません。 キャラクターのルート位置を動かすルートモーションアニメーション。完了時にリジッドボディをテレポートし、オブジェクトが空から落下した場合でも、box2dが衝突に適切に対応できることを望みます。 備考:実際にアニメートする方が簡単に聞こえますが、脊椎のランタイム、box2d以降、プラットフォームを移動するプラットフォームやさまざまな高さのプラットフォームで問題が発生するかどうかはわかりません。 プログラムで手にIKコンストレイントを適用して固定し、ボーンを手動で回転させるか、必要な力をリジッドボディに同時に適用しながら、小さなプリセット(いくつかのキー/フレーム)アニメーションを適用します。 備考:これはプレイヤーに最大のコントロールを与えるようですが、自分のレベルで実装するのは複雑に聞こえるかもしれません。 ご意見をお寄せいただきありがとうございます。 参考:これは、box2dを備えたECS(libgdx + ashley)ベースのエンジンです。棚グラブはすでに別のシステムとして実装されているため、ここではキャラクターがすでにあらゆる高さの棚から吊り下げることができると想定できます。
11 2d  libgdx  box2d  spine 

4
Box2Dで近接武器を作成する(libGDX)
キーが押されたときにスイングできる近接武器の実装方法に苦労しています。 2つの異なる攻撃(スタブとスイング)を想像しています 2つのフィクスチャー(キャラクター+武器)、2つの異なるボディ、2つの異なるボディ+回転ジョイントを作成しようとしましたが、想像したとおりに動作するようにコーディングすることはできません。 刺す: したがって、ボタンを押すと、ボディ/フィクスチャー(センサー)が約1秒間表示されてから消えます(または、ボディ/フィクスチャーは常にヒーロー上にあり、押すと頂点を中心に90度回転するだけで、その後、回転して通常に戻します) スイング: 同じことですが、今度は武器が上から始まり、下にスイングします。武器もセンサーになります。 私が試したこと: 2つの動的ボディを作成しました。 武器はヒーローに従う必要があるので、私は回転ジョイントを使用してそれらをまとめました。キーを押すと、武器の角速度を数値に設定します。ただし、キーを離しても武器は回転し続けます。ifチェックを実装してみました(角度が___より大きい場合は、角速度をゼロに設定します)。ただし、これは、もう一度キーを押すと、武器が回転を停止することを意味します。
10 java  libgdx  box2d 

2
Bulletを学ぶために、Box2Dの代わりにBulletを2D物理学に使用する価値はありますか?
質問にはこれ以上ありません。どちらも私の目的には問題ないので、オーバーヘッドについては気にしていません。基本的に、Farseer Physics EngineのおかげでBox2Dの概念に精通していますが、3DにジャンプするときにBulletを使用したいと思います。おそらく、Bulletは2Dの領域でも私にいくつかの教育的価値を持っていますか? 質問の一般化されたバージョンは次のとおりです。将来3D物理エンジンを利用する予定がある場合、2Dゲームに3D物理エンジンを使用する必要がありますか?または、これは教育的価値を提供しない時間の無駄ですか?

2
重力のある世界でキャラクターをカーブしたスロープに沿って移動させる
私はこのゲームを見ました ファンシーパンツ2。そして、物理学と美しいアニメーションとは別に気付いたのは、キャラクターが坂道に沿って移動していることです。私はBox2dでの経験はほとんどありませんが、このカーブしたスロープの概念は初めてです。もし誰かがこのコンセプトとその実装について私に啓蒙したなら、それは私にとって大きな助けになるでしょう。実装がbox2dにない場合でも、それは歓迎されます。

4
Box2Dポイントがボディと交差するかどうかをチェック
ポイントがボディと交差しているかどうかを確認する方法はありますか? たとえば、世界の(100,100)の位置にボディがあるとしましょう。 (100,100)の点がそのボディと交差するかどうかを確認する方法はありますか? 別の例は、「PHUN」と呼ばれるゲームに関連しています。PHUNでは、ボディをクリックしてドラッグできます。マウスポイントがボディと交差しているかどうかをどのように確認しますか?
10 2d  physics  box2d 

1
box2dで羽毛の落下をシミュレートする方法は?
私はBox2d拡張機能を備えたAndEngineを使用していますが、一般的な回答やコンセプトのアイデアも高く評価されます。 物理シミュレーションの一部にしたい2D側面図の世界に羽のようなオブジェクトがあります。「羽」をゆっくりと落とすために、線形減衰を使用しています。これは良い考えではないかもしれませんが、更新のたびに力を加える必要があるかもしれませんが、それでも機能し、オブジェクトが「軽く」見えるようになり、抵抗のある空気があるように感じます。 次に、オブジェクトを実際に羽毛のように見えるようにするにはどうすればよいですか? 具体的には、次の2種類のオブジェクトを探しています。長い低密度のオブジェクトは、ゆっくりと揺れる動きで下に移動する必要があり、四角形のオブジェクトは軌道をランダムに変化させるだけです。これが1つのシミュレーションであり、長さがパラメータであるとよいでしょう。オブジェクトが長いほど、より大きく振れます。現在、漫画の世界で羽、葉、雪片をシミュレートしたいと思います。
10 box2d  physics 

3
衝突が発生したときにbox2dボディを削除するにはどうすればよいですか?
私はまだjavaとandroidプログラミングの初心者であり、衝突が発生したときにオブジェクトを削除するのに多くの問題を抱えています。私はWebを見回して、衝突検出(接触リスナー)中にBOX2Dボディの削除を処理してはならず、オブジェクトをarraylistに追加し、ボディのユーザーデータセクションで変数を設定して削除するかどうか、および処理しないようにしました更新ハンドラーの削除アクション。だから私はこれをしました:最初に私は2つのArrayListsを顔と体に1つ定義します: ArrayList<Sprite> myFaces = new ArrayList<Sprite>(); ArrayList<Body> myBodies = new ArrayList<Body>(); 次に、面を作成し、その面をその本体に接続するとき、次のようにそれらをArrayListに追加します。 face = new AnimatedSprite(pX, pY, pWidth, pHeight, this.mBoxFaceTextureRegion); Body BoxBody = PhysicsFactory.createBoxBody(mPhysicsWorld, face, BodyType.DynamicBody, objectFixtureDef); mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(face, BoxBody, true, true)); myFaces.add(face); myBodies.add(BoxBody); ここで、次のようにonloadsceneに連絡先リスナーと更新ハン​​ドラを追加します。 this.mPhysicsWorld.setContactListener(new ContactListener() { private AnimatedSprite face2; @Override public void beginContact(final Contact pContact) { } @Override …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.