問題タブ [jbullet]

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

java - Jbullet による 3D Java 衝突検出

そのため、自分のゲーム エンジンの衝突検出システムをゼロから作成することに長い時間を費やしましたが、時間がなくて成果がありませんでした。最後に、Jbullet を使用して処理を高速化することにしました。現在、ドキュメンテーションは基本的に役に立たず、箇条書きのコードを Java に転送しようとすると、多少の困難が生じます (または、転送したものが機能しません)。ライブラリ コードを検索しようとして髪をかきむしってきましたが、期待していた時間の節約はほとんど役に立ちませんでした。それで、私が何をしているのかを説明しようと思います。皆さんが私を助けてくれるかもしれません。私は単純な衝突検出だけを探しています。たとえば、何かをヒットしてから、今のところ行を印刷するだけです。残りはおそらく自分で解決できます。

だから私は自分の世界を作成します:

エンティティ クラスがあり、その中に、そのエンティティに関連付けられた物理オブジェクトのすべての情報を格納する別のクラスがあります。これにより、次のことを簡単に実行できます: entity.getPhysics().getCollisionObject()/.setPosition() など...

次に、そのクラスで CollisionObject を作成します。

これは、LWJGL ライブラリの Vector3f と Jbullets Vector3f からエンティティをレンダリングするために使用する、既に作成されたメッシュに変換されると思います。次に、メッシュ内のそれらの頂点から ConvexHullShape を作成します。私は次のように考えています。

メッシュを単純化することになっています(ドキュメントから)。次に、衝突オブジェクトを作成します。かなり単純だと思います...

Rigidbody を作成します (ただし、Rigid Body が必要なのか、衝突オブジェクトが必要なのかわかりませんが、これが本当かどうかを誰かが教えてくれれば、それは素晴らしいことです):

次に、ゲーム ループを実行します。

これは誰かからもらったものです... どこにあるか忘れましたが。したがって、基本的には何も起こっていません...確かではありませんが、オブジェクトを多様体に追加する必要があるか、そのようなものです。その方法がわからない。何か助けはありますか?

編集:私が今行ったことは、ちょうどランダムなサイズのボックスとして衝突形状を作成することです:

次に、ゴースト ボディを作成します。

それから私はあなたが言ったようにします、それはまだ「ヒット」を返しません。

編集2:

したがって、エンティティ クラスで次のようにオブジェクトを作成します。

位置などを更新するには:

さて、これは私の PhysicsEntity クラスです。ここで設定しました:

ありがとう、

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

java - IntelliJ で JBullet のデモを実行する

IntelliJ で JBullet のデモを正常に実行した人はいますか? Ant ビルド スクリプトを使用してデモを実行すると、次のような間違いが見つかりました。

C:\Users\halin_000\ProgrammingProjects\Java\CS351L\JBullet\build.xml:77: java.lang.IllegalStateException: Stack.alloc(Class) の最初のパラメーターは定数でなければなりません (クラス com.bulletphysics.collision.dispatch. ConvexConcaveCollisionAlgorithm、メソッド processCollision)

問題をどのように解決しますか?

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

android - Android Lollipop 5.0 の Jbullet でのガベージ コレクションの問題 (特に gbullet)

jbullet、特にgbulletを使用してレイキャストビークルを実装しようとしていますが、Android 5.0 Lollipopでガベージコレクターの問題が発生します。私は純粋なJavaポートを使用しているため、これはGLThreadで実行されます。Samsung Galaxy 5Sを使用しました。スタック トレースは次のとおりです。

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

android - 画面座標を OpenGL 座標に変換する

Android用のサイコロローラーアプリを作成しています。Kotlin、OpenGL-ES、jBullet を使用。サイコロを実装しました。ここで、壁を作成する必要があります。そうしないと、サイコロが画面から転がってしまうからです。

画面の縦横比が違うので、 で壁の位置を決めようとしているのですが、わかりglUnProjectません。受け取った座標が正しくありません。

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

java - ブレットの使い方

HeightfieldTerrainShapeJBullet 物理ライブラリからの使い方を見つけるのに苦労しています。ご覧のとおり、2 つのコンストラクターが利用可能です。

heightScaleminHeightmaxHeightおよびupAxisは自明です。しかし、「heightStick」とは正確には何ですか? また、幅と長さはどのように決定すればよいですか? heightfieldData にはどのような形式が期待されますか? これはフロートの単なるバイトバッファだと思いますか?