問題タブ [bullet]

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 に答える
1507 参照

java-native-interface - JNIコードでEXCEPTION_ACCESS_VIOLATIONを引き起こすネイティブ関数はどれですか?

libgdx Android Java開発フレームワーク(gdx-bullet)でラップされた弾丸物理ライブラリを使用しようとしていますが、ランダムな短い作業期間の後に、JVMクラッシュまたは「呼び出された純粋仮想メソッド」がクラッシュします。

それらのいくつかは、一般的に以下を含むhs_err_pidXXXX.logファイルを生成します。

これはおそらく、Javaコードで参照されなくなったオブジェクトの割り当てを解除するJava GCの問題であるとアドバイスされましたが、Bulletネイティブコードでは引き続き必要です。

私はそれらのために私のコードをレビューしましたが、そのような状況は見つかりませんでした。それはそれらがそこにないという意味ではありません。もっと長く探すこともできますが、このアプローチを進めるには、そのような状況を自分でデバッグする方法を学ぶ必要があると思います。

そこで、gdx-bullet.dllでdumpbin.exeを実行すると、次のことがわかりました。

次に、0x6AB80000 + 0x1c217 = 0x6AB9C217を追加し、dumpbin.exeの分解で調べました。

これはすべて素晴らしいことですが、[edx + 8]に何があるのか​​わからないため、行き詰まっているところです。

使用した弾丸のソースコード(おおよそこれ)があります。

windbg.exeをインストールし、userdump.exeにjavaw.dmpファイルを生成させることができましたが、1つで何をどのように探すべきかわかりませんでした。「r」コマンドを使用してrdxに何があるかを調べようとしましたが、ランダムな値であるhs_err_pidファイルとは対照的に0x0でした。

いくつかのビルドスクリプトを見つけましたが、「デバッグ情報を含める」フラグを追加して、タイムリーに機能させることができるかどうか疑問に思っています。

どの特定のネイティブメソッドに問題があるのか​​を把握するにはどうすればよいですか?

それを知っていれば、そのソースコードを確認して、渡した不正なパラメータや、GCによって必要なオブジェクトの割り当てが解除されたオブジェクトを理解できます。

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

c# - 多方向弾丸[読む]

完了したにもかかわらず、学校でまだ取り組んでいるプロジェクトのために、しばらくの間何かをコーディングしようとしていました。

衝突した敵に弾丸を発射する手榴弾を作りたいのですが、atmで助けが必要なのは、一度に8つの弾丸をさまざまな方向に発射することです.

これが私の先生がそれを行うために私にくれたコードです(私は彼に助けを求めました)

どうやらこれにより、マウスの右クリックであらゆる方向に撃たれるようになりますが、試してみるとゲームが真っ直ぐにクラッシュします次に、弾丸であるピュークラスがあり、同時にそれらの方向に撃たれたい

皆さんは、私が示したコードを参考にできないかもしれません。これを行う方法をしばらく探しましたが、何も見つからないようです

以前の例やソースコードは本当に役に立ちます。少なくともこれを別の方法で見ることができます。

クラッシュしたときに表示すると、インデックスが範囲外になるか負であることがわかります。多方向弾丸の基本コードを見せていただければ幸いです

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

java - jBullet-6DOFConstraint激しい振動

シンプルなマルチサイクリンダースネークボディを作りました。各ボディ間に6DOFConstraintがあり、回転の上限と下限を増減して角度を変更することで角度を制御します。

水平軸を中心とした回転は問題なく機能しますが、垂直軸を中心に回転するときに約1.05radの角度に達すると、2つの物体が激しく振動します。

画面キャプチャはここにあります。その説明では、私が行っていることを詳しく説明しています。

http://www.youtube.com/watch?v=OQu-YyxLvbw

次のスクリーンキャプチャは、衝突の問題が発生する可能性を排除するために、制約が設定されたまま直線的に分離されたヘビの「頭」を示しています。

http://www.youtube.com/watch?v=6wso6HDjqXA

私は問題を解決するために次のテクニックを試しましたが、どれもうまくいきませんでした:

  • 反発力(弾力性)を非常に低く設定する–同じことが起こります
  • 線形減衰と角度減衰の両方を0〜1の値の範囲に設定します
    –同じことが発生します
  • 1.05より大きい角度から開始するように設定します–同じことが起こります。
  • 角度を1.05を超えて増やし続けて、落ち着くかどうかを確認します。反対のことが起こり、さらに激しくなります。
  • シングルジョイントで試してください–同じことが起こります
  • 深い浸透をチェックします–存在しません
  • 衝突の問題を除外するために2つのボディを直線的に分離しますが、ジョイントは同じままにします。同じことが発生します。
  • 地面の相互作用を取り除くために、ヘビ(頭以外のすべての部分の質量= 0f)を地面に浮かせます-同じことが起こります
  • ロック位置にある間、重力をオフにします–動作は1.43radまで遅れます
  • jBulletでは小さなアイテムでレンダリングの問題が発生することが知られているため、ヘビのサイズ(スケール)を大きくします。変更はありません。
  • 体をカプセルの形に変えてみました–変化なし
0 投票する
4 に答える
3287 参照

c++ - 単純なBulletPhysicsアプリケーションをコンパイルできません

Visual Studio2012ExpressのBullelPhysicsWikiからHelloWorldプログラムコンパイルしようとしています。
例を実行するために必要な3つのライブラリプロジェクトを生成してインポートすることができましたが、それらをリンクするときに問題があるようです。
コンパイルログには、これらのエラーが38個あり、ライブラリごとに何度も繰り返されています。

何が悪いのか理解できません。

0 投票する
2 に答える
2769 参照

java - Java Slickゲームで弾丸システムを実装する方法がわかりませんか?

そのため、私はSlick API 2D Game Javaチュートリアルのチュートリアルに従っており、APIの使用方法の基本を習得しました。しかし、それから、私が遊んでいて、ゲームを作ろうとしていたとき。2Dスペースシューティングゲームに弾丸/発射システムを実装しようとしました。そして、私はそれを行う方法を見つけることができないようです!

グーグルとユーチューブを見て回ってみましたが、全然役に立たない…!私のゲームは今、船を右から左に動かすだけです。スペースバーを押すたびに弾丸のようなものが発射されるようにしたいと思います。どうすればいいのかわからない…誰かが新しいプログラマーに簡単に説明してくれることを願っている!

0 投票する
5 に答える
1660 参照

c++ - Bulletで衝突を避けるためにレイをキャストする場所を見つける方法は?

点 A にオブジェクトがあるとします。オブジェクトは点 B に移動できるかどうかを調べたいと考えています。速度が制限されているため、段階的にしか移動できません。移動している方向に光線を放ちます。レイが物体に衝突し、それを検出します。光線を安全に通過させる方法を取得する方法 (衝突を回避する方法) は?

ここに画像の説明を入力

ところで、オブジェクトキャストの場合にそのようなことを機能させる方法はありますか?それは単純なレイキャストと同じくらい/ほぼ高速ですか?

ここに画像の説明を入力

いくつかのvayパスで最適なものを見つける方法はありますか?

ここに画像の説明を入力

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

c++ - 弾丸の衝突検出ライブラリは、worlオブジェクトのジオメトリに対するブール演算を提供しますか?

3Dメッシュ上での単純なブール演算に関してCGALが提供するものと同様のものが必要ですが、libBulletにあります。では、Bulletのメッシュに3Dブール演算があるのだろうか?(マニュアルで専用の章を見つけることができません、私は盲目ですか?)

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

c++ - btIDebugDraw (QT なし) に基づく CGAL レンダラー?

複雑な構造/レンダラー (Nef Polyhedra や Polyhedron など - 私にとってはすべてです) のコレクションと、箇条書きbtIDebugDraw1 - 仮想クラスと同様に機能する単純なレンダラー (エンジン) はありますか? レンダリング関数を実装し、そのレンダリングのインスタンスを提供します。 engine オブジェクトからレンダラーを構造化します (箇条書きの場合はWorld likebtDiscreteDynamicsWorld )。ここでは、Nef Polyhedra または Polyhedron レンダラーになります。CGAL にそのようなクラスはありますか? btIDebugDrawまたは、 render Polyhedron ( CGAL::Polyhedron_3<Kernel>) と Nef Polyhedra ( )の準備が整った実装をどのように使用しますCGAL::Nef_polyhedron_3<Kernel>か?

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

visual-studio-2010 - コマンドライン引数を使用した VS2010 のデバッグ

project properties -> debugging -> command argumentsセクションでアプリのコマンド ライン引数を設定しました。

コマンドラインからプログラムを直接実行すると、次のようになります。

progname arg1 arg2

だから私はVSのコマンドライン引数をに設定しました

arg1 arg2,

ここで説明したように。

ただし、プログラムはコマンドラインから実行する場合と同じようには実行されないようです。引数はテキスト ファイルであり、コマンド ラインではこれらのテキスト ファイルを正しくロードできますが、VS2010 では何とかロードできません。理由はありますか?


編集:投稿の更新/明確化:

例外はありません。

説明で問題を単純化しすぎた可能性があります。実際にはテキスト ファイルをロードするのではなく、実行時に決定する必要がある物理エンジンをロードしているので、コマンド ライン引数が必要です。

物理エンジンのロードに使用されるコードの概要は次のとおりです。

次のように実行される Bullet を使用しています。

arg1は物理エンジン名で、arg2ロードする物理ファイルですが、ハングアップしarg1ます。

コマンドラインでこれを呼び出す具体的な方法は次のとおりです。

コマンドラインでこれを行うと機能しますが、これらの引数をデバッガーに渡すと、could not load physics engine.

これは、別のソースからの物理エンジン ローダーの内部の結果である可能性がありますが、コマンド ラインまたは VS のデバッガー設定でこれらの引数を渡すかどうかに関係なく、これは同じように機能するはずです。

UAC 設定を調べて、その内容を確認します。

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

game-physics - 弾丸の物理学: ソフト ボディを「静的」(種類) にする方法は?

私は Bullet を初めて使用し、1 週間前に使い始めました。私は主にリジッド ボディで遊んでいて、すべてが期待どおりに機能していましたが、シミュレーションにソフト ボディも追加する必要があるため、状況は少し複雑になりました。

私が欲しいもの:シンプルだが非現実的なシーンを作成する必要があります: 主なオブジェクトは、世界の中心で浮揚する変形可能なボールであり、何にも静止せず、そこで「浮く」だけです。次に、ボールが変形するが動かないように、さまざまな剛体をボールに向けて投げることができるはずです。

私が試したこと:私の問題は、メインのソフト ボディをシーンの中心に浮かせる方法がわからないことです。各ノードの質量をゼロに設定しようとしましたが、明らかに変形しません。総質量も変更しましたが、同じ結果が得られました(すべての質量を0に設定するのと同じかどうかはわかりません)。また、STATIC フラグを付けようとしましたが、何も変わりません。

私が試すことができること(ただし、複雑すぎるようです):ポイントツーポイントの制約を使用してボールを固定位置に吊るす可能性がありますが、ボールが変形し、不要なスイングモーションが作成される可能性があります. 私が持っていた別のアイデアは、ボールを空中に保つが他の物体(特に私が投げる硬いもの)と反応しない平面で作られた目に見えない箱にボールを入れることですが、この解決策は実装が面倒であり、ボールがボックスに押し付けられたときにボックスの面が識別できるようになります。

要約すると、同じ中心を保つ球形のソフト ボディが必要です。何かを投げると、表面が波打っているはずですが、「全体的に」移動することはありません。それをきれいに行う方法はありますか?

ご協力ありがとうございました!

(Bullet フォーラムで同じ質問をしましたが、回答がありませんでした)